Author: clopes
Date: 2012-09-06 07:38:42 -0700 (Thu, 06 Sep 2012)
New Revision: 30323

Added:
   
core3/impl/trunk/session-impl/integration-test/src/test/java/org/cytoscape/session/Cy3SubnetworksSessionLoadingTest.java
   
core3/impl/trunk/session-impl/integration-test/src/test/resources/testData/session3x/subnetworks.cys
Log:
refs #1383 : testing subnetworks and nested networks, as well as other related 
states.

Added: 
core3/impl/trunk/session-impl/integration-test/src/test/java/org/cytoscape/session/Cy3SubnetworksSessionLoadingTest.java
===================================================================
--- 
core3/impl/trunk/session-impl/integration-test/src/test/java/org/cytoscape/session/Cy3SubnetworksSessionLoadingTest.java
                            (rev 0)
+++ 
core3/impl/trunk/session-impl/integration-test/src/test/java/org/cytoscape/session/Cy3SubnetworksSessionLoadingTest.java
    2012-09-06 14:38:42 UTC (rev 30323)
@@ -0,0 +1,150 @@
+package org.cytoscape.session;
+
+import static org.cytoscape.model.CyNetwork.DEFAULT_ATTRS;
+import static org.cytoscape.model.CyNetwork.HIDDEN_ATTRS;
+import static org.cytoscape.model.CyNetwork.LOCAL_ATTRS;
+import static org.cytoscape.model.CyNetwork.NAME;
+import static org.cytoscape.model.CyNetwork.SELECTED;
+import static org.cytoscape.model.subnetwork.CyRootNetwork.SHARED_ATTRS;
+import static 
org.cytoscape.model.subnetwork.CyRootNetwork.SHARED_DEFAULT_ATTRS;
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.util.Set;
+
+import org.cytoscape.model.CyEdge;
+import org.cytoscape.model.CyIdentifiable;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.model.SavePolicy;
+import org.cytoscape.model.subnetwork.CySubNetwork;
+import org.cytoscape.work.TaskIterator;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.ExamReactorStrategy;
+import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
+
+@RunWith(JUnit4TestRunner.class)
+@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
+public class Cy3SubnetworksSessionLoadingTest extends BasicIntegrationTest {
+
+       @Before
+       public void setup() throws Exception {
+               sessionFile = new 
File("./src/test/resources/testData/session3x/", "subnetworks.cys");
+               checkBasicConfiguration();
+       }
+
+       @Test
+       public void testLoadSession() throws Exception {
+               final TaskIterator ti = 
openSessionTF.createTaskIterator(sessionFile);
+               tm.execute(ti);
+               confirm();
+       }
+
+       private void confirm() {
+               checkGlobalStatus();
+               checkNetworks();
+       }
+       
+       private void checkGlobalStatus() {
+               assertEquals(5, networkManager.getNetworkSet().size());
+               assertEquals(4, viewManager.getNetworkViewSet().size());
+               assertEquals(1, 
applicationManager.getSelectedNetworks().size());
+               assertEquals(0, 
applicationManager.getSelectedNetworkViews().size());
+               assertEquals(getNetworkByName("Na.1.1"), 
applicationManager.getCurrentNetwork());
+               assertNull(applicationManager.getCurrentNetworkView());
+               assertEquals("default", vmm.getDefaultVisualStyle().getTitle());
+               assertEquals(6, vmm.getAllVisualStyles().size());
+       }
+       
+       private void checkNetworks() {
+               Set<CyNetwork> networks = networkManager.getNetworkSet();
+               
+               for (CyNetwork net : networks)
+                       assertEquals(SavePolicy.SESSION_FILE, 
net.getSavePolicy());
+               
+               CyNetwork na = getNetworkByName("Na");
+               CyNetwork na1 = getNetworkByName("Na.1");
+               CyNetwork na11 = getNetworkByName("Na.1.1");
+               CyNetwork nb = getNetworkByName("Nb");
+               CyNetwork nb1 = getNetworkByName("Nb.1");
+               
+               // Correct base networks
+               assertEquals(na, ((CySubNetwork) 
na1).getRootNetwork().getBaseNetwork());
+               assertEquals(nb, ((CySubNetwork) 
nb1).getRootNetwork().getBaseNetwork());
+               
+               // Subnetworks' node/edge count and selection
+               checkNodeEdgeCount(na, 3, 2, 2, 1);
+               checkNodeEdgeCount(na1, 3, 1, 1, 0);
+               checkNodeEdgeCount(na11, 1, 0, 1, 0);
+               checkNodeEdgeCount(nb, 2, 2, 0, 1);
+               checkNodeEdgeCount(nb1, 1, 1, 0, 1);
+               
+               checkSelection(na, getNodeByName(na, "Node 1"), true);
+               checkSelection(na, getNodeByName(na, "Node 2"), true);
+               checkSelection(na, getNodeByName(na, "Node 3"), false);
+               checkSelection(na, getEdgeByName(na, "Node 1 (interaction) Node 
2"), true);
+               checkSelection(na, getEdgeByName(na, "Node 2 (interaction) Node 
3"), false);
+               checkSelection(na1, getNodeByName(na1, "Node 2"), false);
+               checkSelection(nb, getEdgeByName(nb, "Node 6 (interaction) Node 
5"), true);
+               
+               // Root-networks' node/edge count and selection
+               checkNodeEdgeCount(((CySubNetwork) na).getRootNetwork(), 4, 2, 
0, 0);
+               checkNodeEdgeCount(((CySubNetwork) nb).getRootNetwork(), 2, 3, 
0, 0);
+               
+               // Network pointers
+               assertEquals(nb, getNodeByName(na, "Node 
1").getNetworkPointer());
+               assertEquals(na1, getNodeByName(na, "Node 
3").getNetworkPointer());
+               assertEquals(na1, getNodeByName(na1, "Node 
3").getNetworkPointer());
+               assertEquals(nb1, getNodeByName(nb, "Node 
5").getNetworkPointer());
+               assertEquals(na, getNodeByName(nb, "Node 
6").getNetworkPointer());
+               assertEquals(na, getNodeByName(nb1, "Node 
6").getNetworkPointer());
+               
+               // Styles
+               assertEquals("Sample1", 
vmm.getVisualStyle(viewManager.getNetworkViews(na).iterator().next()).getTitle());
+               assertEquals("Minimal", 
vmm.getVisualStyle(viewManager.getNetworkViews(na1).iterator().next()).getTitle());
+               assertEquals("Directed", 
vmm.getVisualStyle(viewManager.getNetworkViews(nb).iterator().next()).getTitle());
+               assertEquals("Ripple", 
vmm.getVisualStyle(viewManager.getNetworkViews(nb1).iterator().next()).getTitle());
+       }
+       
+       private void checkNodeEdgeCount(CyNetwork net, int nodeCount, int 
edgeCount, int selectedNodes, int selectedEdges) {
+               assertEquals(net + ": incorrect selection", nodeCount, 
net.getNodeCount());
+               assertEquals(net + ": incorrect selection", edgeCount, 
net.getEdgeCount());
+               assertEquals(net + ": incorrect selection", selectedNodes, 
net.getTable(CyNode.class, LOCAL_ATTRS).getMatchingRows(SELECTED, true).size());
+               assertEquals(net + ": incorrect selection", selectedEdges, 
net.getTable(CyEdge.class, LOCAL_ATTRS).getMatchingRows(SELECTED, true).size());
+       }
+       
+       private void checkSelection(CyNetwork net, CyIdentifiable element, 
boolean selected) {
+               assertEquals(selected, net.getRow(element, 
LOCAL_ATTRS).get(SELECTED, Boolean.class));
+       }
+       
+       private CyNetwork getNetworkByName(String name) {
+               for (CyNetwork net : networkManager.getNetworkSet()) {
+                       if (name.equals(net.getRow(net).get(NAME, 
String.class)))
+                               return net;
+               }
+               
+               return null;
+       }
+       
+       private CyNode getNodeByName(CyNetwork net, String name) {
+               for (CyNode n : net.getNodeList()) {
+                       if (name.equals(net.getRow(n).get(NAME, String.class)))
+                               return n;
+               }
+               
+               return null;
+       }
+       
+       private CyEdge getEdgeByName(CyNetwork net, String name) {
+               for (CyEdge e : net.getEdgeList()) {
+                       if (name.equals(net.getRow(e).get(NAME, String.class)))
+                               return e;
+               }
+               
+               return null;
+       }
+}

Added: 
core3/impl/trunk/session-impl/integration-test/src/test/resources/testData/session3x/subnetworks.cys
===================================================================
(Binary files differ)


Property changes on: 
core3/impl/trunk/session-impl/integration-test/src/test/resources/testData/session3x/subnetworks.cys
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to