Author: clopes
Date: 2012-07-20 10:32:09 -0700 (Fri, 20 Jul 2012)
New Revision: 29940

Modified:
   
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
Log:
Added unit tests to make sure 2.x custom attributes are imported as mutable 
CyColumns.

Modified: 
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
===================================================================
--- 
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
        2012-07-20 15:41:35 UTC (rev 29939)
+++ 
core3/impl/trunk/io-impl/impl/src/test/java/org/cytoscape/io/internal/read/xgmml/GenericXGMMLReaderTest.java
        2012-07-20 17:32:09 UTC (rev 29940)
@@ -16,6 +16,7 @@
 import org.cytoscape.io.internal.util.ReadCache;
 import org.cytoscape.io.internal.util.UnrecognizedVisualPropertyManager;
 import org.cytoscape.io.internal.util.session.SessionUtil;
+import org.cytoscape.model.CyColumn;
 import org.cytoscape.model.CyEdge;
 import org.cytoscape.model.CyNetwork;
 import org.cytoscape.model.CyNetworkFactory;
@@ -84,6 +85,7 @@
                List<CyNetworkView> views = getViews("galFiltered.xgmml");
                CyNetwork net = checkSingleNetwork(views, 331, 362);
                findInteraction(net, "YGR136W", "YGR058W", "pp", 1);
+               testCustomColumnsAreMutable(net);
        }
        
        @Test
@@ -108,6 +110,8 @@
                assertNotNull(defEdgeTbl.getColumn("name"));
                CyTable hiddenEdgeTbl = net.getRow(net.getEdgeList().get(0), 
CyNetwork.HIDDEN_ATTRS).getTable();
                assertNotNull(hiddenEdgeTbl.getColumn("_private_real"));
+               
+               testCustomColumnsAreMutable(net);
        }
        
        @Test
@@ -125,7 +129,15 @@
                // The group network should not be registered, so the network 
list must contain only the base network
                assertEquals(1, reader.getNetworks().length);
                CyNetwork net = checkSingleNetwork(views, 2, 1);
-               check2xGroupMetadata(net);
+               CyNode grNode = check2xGroupMetadata(net);
+               // Check group network data
+               CyNetwork grNet = grNode.getNetworkPointer();
+               for (CyNode n : grNet.getNodeList()) {
+                       assertNotNull(grNet.getRow(n, 
CyNetwork.HIDDEN_ATTRS).get("__metanodeHintX", Double.class));
+                       assertNotNull(grNet.getRow(n, 
CyNetwork.HIDDEN_ATTRS).get("__metanodeHintY", Double.class));
+               }
+               testCustomColumnsAreMutable(net);
+               testCustomColumnsAreMutable(grNet);
        }
 
        @Test
@@ -200,7 +212,29 @@
                assertEquals("SansSerif,bold,12", 
GenericXGMMLReader.convertOldFontValue("SansSerif,bold,12"));
        }
        
-       private void check2xGroupMetadata(final CyNetwork net) {
+       private void testCustomColumnsAreMutable(CyNetwork net) {
+               // User or non-default columns should be immutable
+               CyTable[] tables = new CyTable[] {
+                       net.getTable(CyNetwork.class, CyNetwork.DEFAULT_ATTRS),
+                       net.getTable(CyNetwork.class, CyNetwork.HIDDEN_ATTRS),
+                       net.getTable(CyNode.class, CyNetwork.DEFAULT_ATTRS),
+                       net.getTable(CyNode.class, CyNetwork.HIDDEN_ATTRS),
+                       net.getTable(CyEdge.class, CyNetwork.DEFAULT_ATTRS),
+                       net.getTable(CyEdge.class, CyNetwork.HIDDEN_ATTRS)
+               };
+               for (CyTable t : tables) {
+                       for (CyColumn c : t.getColumns()) {
+                               String name = c.getName();
+                               if (!name.equals(CyNetwork.SUID)     && 
!name.equals(CyNetwork.NAME) && 
+                                       !name.equals(CyNetwork.SELECTED) && 
!name.equals(CyEdge.INTERACTION) &&
+                                       !c.getVirtualColumnInfo().isVirtual()) {
+                                       assertFalse("Column " + c.getName() + " 
should NOT be immutable", c.isImmutable());
+                               }
+                       }
+               }
+       }
+       
+       private CyNode check2xGroupMetadata(final CyNetwork net) {
                // Test 2.x group parsed as network pointer
                CyNode gn = null;
                int npCount = 0;
@@ -232,6 +266,8 @@
                assertNotNull(extEdgeIds);
                assertEquals(1, extEdgeIds.size());
                assertEquals("node1 (DirectedEdge) node2", extEdgeIds.get(0));
+               
+               return gn;
        }
        
        private List<CyNetworkView> getViews(String file) throws Exception {

-- 
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