Author: clopes
Date: 2012-05-17 14:15:24 -0700 (Thu, 17 May 2012)
New Revision: 29292

Modified:
   
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
   
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
Log:
Fixes #1012 : CreateNetworkViewTask can create multiple views per network

Modified: 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
       2012-05-17 21:04:30 UTC (rev 29291)
+++ 
core3/impl/trunk/core-task-impl/src/main/java/org/cytoscape/task/internal/creation/CreateNetworkViewTask.java
       2012-05-17 21:15:24 UTC (rev 29292)
@@ -90,12 +90,13 @@
                int i = 0;
                int viewCount = networks.size();
                for (final CyNetwork n : networks) {
-                       
-                       createView(n);
-                       taskMonitor.setStatusMessage("Network view successfully 
create for:  "
-                                       + n.getRow(n).get(CyNetwork.NAME, 
String.class));
-                       i++;
-                       taskMonitor.setProgress((i / (double) viewCount));
+                       if (networkViewManager.getNetworkViews(n).isEmpty()) {
+                               createView(n);
+                               taskMonitor.setStatusMessage("Network view 
successfully created for:  "
+                                               + 
n.getRow(n).get(CyNetwork.NAME, String.class));
+                               i++;
+                               taskMonitor.setProgress((i / (double) 
viewCount));
+                       }
                }
 
                taskMonitor.setProgress(1.0);

Modified: 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
===================================================================
--- 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
   2012-05-17 21:04:30 UTC (rev 29291)
+++ 
core3/impl/trunk/core-task-impl/src/test/java/org/cytoscape/task/internal/creation/CreateNetworkViewTaskTest.java
   2012-05-17 21:15:24 UTC (rev 29292)
@@ -1,10 +1,9 @@
 package org.cytoscape.task.internal.creation;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -17,31 +16,51 @@
 import org.cytoscape.view.model.CyNetworkViewManager;
 import org.cytoscape.work.TaskMonitor;
 import org.cytoscape.work.undo.UndoSupport;
+import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 public class CreateNetworkViewTaskTest {
        
        private final NetworkTestSupport support = new NetworkTestSupport();
        private final NetworkViewTestSupport viewSupport = new 
NetworkViewTestSupport();
-
-       private CyNetwork networkModel = support.getNetwork();
        private CyNetworkViewFactory viewFactory = 
viewSupport.getNetworkViewFactory();
 
-       private CyNetworkViewManager networkViewManager = 
mock(CyNetworkViewManager.class);
+       @Mock private CyNetworkViewManager networkViewManager;
+       @Mock private UndoSupport undoSupport;
+       @Mock private TaskMonitor tm;
+       @Mock private CyEventHelper eventHelper;
 
+       @Before
+       public void setUp() throws Exception {
+               MockitoAnnotations.initMocks(this);
+       }
+       
        @Test
        public void testCreateNetworkViewTask() throws Exception {
-               UndoSupport undoSupport = mock(UndoSupport.class);
-
-               final TaskMonitor tm = mock(TaskMonitor.class);
-               final CyEventHelper eventHelper = mock(CyEventHelper.class);
                final Set<CyNetwork> networks = new HashSet<CyNetwork>();
-               networks.add(networkModel);
+               networks.add(support.getNetwork());
                final CreateNetworkViewTask task = new 
CreateNetworkViewTask(undoSupport, networks, viewFactory,
                                networkViewManager, null, eventHelper);
 
                task.run(tm);
                verify(networkViewManager, 
times(1)).addNetworkView(any(CyNetworkView.class));
        }
+       
+       @Test
+       public void testShouldNotCreateMultipleViewsPerNetwork() throws 
Exception {
+               final Set<CyNetwork> networks = new HashSet<CyNetwork>();
+               final CyNetworkView view = viewSupport.getNetworkView();
+               networks.add(support.getNetwork());
+               networks.add(view.getModel());
+               
when(networkViewManager.getNetworkViews(view.getModel())).thenReturn(Arrays.asList(new
 CyNetworkView[]{ view }));
+               
+               final CreateNetworkViewTask task = new 
CreateNetworkViewTask(undoSupport, networks, viewFactory,
+                               networkViewManager, null, eventHelper);
+               
+               task.run(tm);
+               verify(networkViewManager, 
times(1)).addNetworkView(any(CyNetworkView.class));
+       }
 
 }

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