Author: rozagh
Date: 2012-08-15 17:31:57 -0700 (Wed, 15 Aug 2012)
New Revision: 30204

Added:
   core3/impl/trunk/table-browser-impl/src/test/
   core3/impl/trunk/table-browser-impl/src/test/java/
   core3/impl/trunk/table-browser-impl/src/test/java/org/
   core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/
   core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/
   
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/
   
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
Modified:
   core3/impl/trunk/table-browser-impl/pom.xml
Log:
Adding unit tests for BrowserTable

Modified: core3/impl/trunk/table-browser-impl/pom.xml
===================================================================
--- core3/impl/trunk/table-browser-impl/pom.xml 2012-08-15 23:09:56 UTC (rev 
30203)
+++ core3/impl/trunk/table-browser-impl/pom.xml 2012-08-16 00:31:57 UTC (rev 
30204)
@@ -108,5 +108,22 @@
                        <groupId>org.cytoscape</groupId>
                        <artifactId>io-api</artifactId>
                </dependency>
+               
+               <dependency>
+                       <groupId>org.cytoscape</groupId>
+                       <artifactId>model-impl</artifactId>
+                       <version>${project.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-all</artifactId>
+                       <scope>test</scope>
+               </dependency>
        </dependencies>
 </project>

Added: 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
                              (rev 0)
+++ 
core3/impl/trunk/table-browser-impl/src/test/java/org/cytoscape/browser/internal/BrowserTableTest.java
      2012-08-16 00:31:57 UTC (rev 30204)
@@ -0,0 +1,230 @@
+package org.cytoscape.browser.internal;
+
+import java.awt.event.MouseEvent;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.cytoscape.application.CyApplicationManager;
+import org.cytoscape.equations.EquationCompiler;
+import org.cytoscape.equations.Interpreter;
+import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.event.DummyCyEventHelper;
+import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.model.CyTable;
+import org.cytoscape.model.CyTableManager;
+import org.cytoscape.model.SavePolicy;
+import org.cytoscape.model.events.RowSetRecord;
+import org.cytoscape.model.events.RowsSetEvent;
+import org.cytoscape.model.internal.CyTableImpl;
+import org.cytoscape.util.swing.OpenBrowser;
+import org.cytoscape.work.TaskManager;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+public class BrowserTableTest {
+       static final String SHARED_NAME  = "shared name";
+       
+       CyTable table;
+       CyTable sharedTable;
+       BrowserTable browserTable;
+       BrowserTableModel btm;
+       BrowserTableColumnModel btcm;
+       CyTableManager tableManager;
+       
+       CyEventHelper eventHelper;
+       
+       public BrowserTableTest(){
+               EquationCompiler equationCompiler = 
mock(EquationCompiler.class);
+               PopupMenuHelper popupMenuHelper = new 
PopupMenuHelper(mock(TaskManager.class), mock(OpenBrowser.class));
+               tableManager = mock(CyTableManager.class);
+               eventHelper = new DummyCyEventHelper();
+               browserTable = new BrowserTable(equationCompiler, 
popupMenuHelper, mock(CyApplicationManager.class), eventHelper, tableManager );
+               
+               createTable();
+               assertEquals(4, table.getColumns().size());
+               
+               btm = new BrowserTableModel(table, equationCompiler, 
tableManager);
+               browserTable.setModel(btm);
+               btcm = (BrowserTableColumnModel) browserTable.getColumnModel();
+               btcm.setAllColumnsVisible();
+       }
+       
+       
+       void createTable (){
+               sharedTable = new CyTableImpl("shared table", CyNetwork.SUID, 
Long.class, false, true, SavePolicy.DO_NOT_SAVE, eventHelper, 
mock(Interpreter.class), 0);
+               sharedTable.createColumn(SHARED_NAME, String.class, true);
+               table = new CyTableImpl("test table", CyNetwork.SUID, 
Long.class, true, true, SavePolicy.DO_NOT_SAVE , eventHelper, 
mock(Interpreter.class), 0);
+               table.createColumn(CyNetwork.NAME, String.class, true);
+               table.createColumn(CyNetwork.SELECTED, Boolean.class, true, 
false);
+               table.addVirtualColumn(SHARED_NAME, SHARED_NAME, sharedTable, 
CyNetwork.SUID, true);
+               tableManager.addTable(table);
+
+               Long id = (long) 1;
+               
+               CyRow row1 =  table.getRow(id);
+               row1.set(CyNetwork.NAME, "row1");
+               
+               CyRow sharedRow1 = sharedTable.getRow(id);
+               sharedRow1.set(SHARED_NAME,  "yek");
+               
+               CyRow row2 =  table.getRow(id+1);
+               row2.set(CyNetwork.NAME, "row2");
+       
+               CyRow row3 =  table.getRow(id+2);
+               row3.set(CyNetwork.NAME, "row3");
+               
+               CyRow sharedRow3 = sharedTable.getRow(id+2);
+               sharedRow3.set(SHARED_NAME,  "se");
+               
+       }
+       
+       @Test
+       public void testInitialization(){
+               assertEquals(4 ,btm.getColumnCount());
+               assertEquals(4 ,btcm.getColumnCount());
+               assertEquals(4 , browserTable.getColumnCount());
+               
+               assertEquals(3, btm.getRowCount());
+               assertEquals(3, browserTable.getRowCount());
+
+       }
+       
+       @Test
+       public void testColumnState(){
+               //is primary key column non-editable
+
+               int suidMIndex =  
btm.mapColumnNameToColumnIndex(CyNetwork.SUID);
+               int suidVIndex = 
browserTable.convertColumnIndexToView(suidMIndex);
+
+               assertFalse(browserTable.isCellEditable(1,suidVIndex));
+
+
+               int nameMIndex =  
btm.mapColumnNameToColumnIndex(CyNetwork.NAME);
+               int nameVIndex = 
browserTable.convertColumnIndexToView(nameMIndex);
+               
+               assertTrue(browserTable.isCellEditable(1, nameVIndex));
+               
+               //move columns and check it
+               btcm.moveColumn(suidVIndex, 2); //2 is just a random number but 
we know it is less than number of columns 4
+               suidVIndex = browserTable.convertColumnIndexToView(suidMIndex);
+               assertFalse(browserTable.isCellEditable(1, suidVIndex));
+               
+               nameVIndex = browserTable.convertColumnIndexToView(nameMIndex);
+               assertTrue(browserTable.isCellEditable(1, nameVIndex));
+               
+               
+               //hide a column and check it
+               btcm.setColumnVisible( btcm.getColumn(nameVIndex) , false); 
//hiding name column
+               suidVIndex = browserTable.convertColumnIndexToView(suidMIndex);
+               assertFalse(browserTable.isCellEditable(1, suidVIndex));
+               
+       }
+       
+       
+       @Test
+       public void testColumnPlacement(){
+               
+               btcm.setAllColumnsVisible();
+               //to make sure the columns are not sorted based on model index 
move them around
+               btcm.moveColumn(1,3);
+               btcm.moveColumn(2, 0);
+               
+               int suidMIndex =  
btm.mapColumnNameToColumnIndex(CyNetwork.SUID);
+               int suidVIndex = 
browserTable.convertColumnIndexToView(suidMIndex);
+
+               int nameMIndex =  
btm.mapColumnNameToColumnIndex(CyNetwork.NAME);
+               int nameVIndex = 
browserTable.convertColumnIndexToView(nameMIndex);
+               
+
+               int selectedMIndex =  
btm.mapColumnNameToColumnIndex(CyNetwork.SELECTED);
+               int selctedVIndex = 
browserTable.convertColumnIndexToView(selectedMIndex);
+               
+
+               int sharedNameMIndex =  
btm.mapColumnNameToColumnIndex(SHARED_NAME);
+               int sharedNameVIndex = 
browserTable.convertColumnIndexToView(sharedNameMIndex);
+               
+               //hide and show all the indexes should be same
+               browserTable.setVisibleAttributeNames(new ArrayList<String>()); 
//hide all
+               assertEquals(false, btcm.getColumns(true).hasMoreElements());
+               assertEquals(-1,  
browserTable.convertColumnIndexToView(suidMIndex));
+               assertEquals(-1,  
browserTable.convertColumnIndexToView(nameMIndex));
+               assertEquals(-1,  
browserTable.convertColumnIndexToView(selectedMIndex));
+               assertEquals(-1,  
browserTable.convertColumnIndexToView(sharedNameMIndex));
+
+               btcm.setAllColumnsVisible();
+               assertEquals(suidVIndex,  
browserTable.convertColumnIndexToView(suidMIndex));
+               assertEquals(nameVIndex,  
browserTable.convertColumnIndexToView(nameMIndex));
+               assertEquals(selctedVIndex,  
browserTable.convertColumnIndexToView(selectedMIndex));
+               assertEquals(sharedNameVIndex,  
browserTable.convertColumnIndexToView(sharedNameMIndex));
+
+               
+               //hide column 2 and check if column 3 is now column 2
+               
+               String col3 = btm.getColumnName( 
browserTable.convertColumnIndexToModel(3));
+               String col2 = btm.getColumnName( 
browserTable.convertColumnIndexToModel(2));
+               btcm.setColumnVisible(btcm.getColumn(2), false);
+               assertEquals(col3, btm.getColumnName( 
browserTable.convertColumnIndexToModel(2)));
+               
+               //now show back col2 and check if the index is 2 and if col3 is 
moved back to index 3
+               btcm.setAllColumnsVisible();
+               assertEquals(col2, btm.getColumnName( 
browserTable.convertColumnIndexToModel(2)));
+               assertEquals(col3, btm.getColumnName( 
browserTable.convertColumnIndexToModel(3)));
+       
+       }
+       
+       
+       @Test
+       public void testTableModeAndSelection(){
+               
+               browserTable.setModel(btm); //to reset the columns and rows
+
+               btm.setShowAll(true);
+               //btm.fireTableDataChanged();
+
+               assertEquals(3, browserTable.getRowCount());
+               
+               btm.setShowAll(false);
+               //btm.fireTableDataChanged();
+
+               assertEquals(0, browserTable.getRowCount());
+               
+               
+               table.getRow((long)1).set(CyNetwork.SELECTED, true);
+               assertEquals(1, browserTable.getRowCount());
+               
+               btm.setShowAll(true);
+               RowSetRecord rsc = new RowSetRecord  (table.getRow((long)1), 
CyNetwork.SELECTED, (Object) true , (Object) true );
+               List<RowSetRecord> rscs = new ArrayList<RowSetRecord>();
+               rscs.add(rsc);
+               
+               browserTable.handleEvent(new RowsSetEvent(table, rscs));
+               assertEquals(1, browserTable.getSelectedRowCount());
+
+               table.getRow((long)2).set(CyNetwork.SELECTED, true);
+                rsc = new RowSetRecord  (table.getRow((long)2), 
CyNetwork.SELECTED, (Object) true , (Object) true );
+                rscs = new ArrayList<RowSetRecord>();
+               rscs.add(rsc);
+               
+               browserTable.handleEvent(new RowsSetEvent(table, rscs));
+               assertEquals(2, browserTable.getSelectedRowCount());
+               
+               table.getRow((long)2).set(CyNetwork.SELECTED, false);
+                rsc = new RowSetRecord  (table.getRow((long)2), 
CyNetwork.SELECTED, (Object) false , (Object) false );
+                rscs = new ArrayList<RowSetRecord>();
+               rscs.add(rsc);
+               
+               browserTable.handleEvent(new RowsSetEvent(table, rscs));
+               assertEquals(1, browserTable.getSelectedRowCount());
+               
+               browserTable.mouseReleased(new MouseEvent(browserTable, 0, 0, 
0, browserTable.getCellRect(1, 0, true).x, browserTable.getCellRect(1, 0, 
true).y, Math.abs( browserTable.getCellRect(1, 0, true).x ), Math.abs( 
browserTable.getCellRect(1, 0, true).y ), 1, true, MouseEvent.BUTTON1));
+               assertEquals(1, browserTable.getSelectedRowCount());
+
+               
+               browserTable.selectAll();
+               assertEquals(3, browserTable.getSelectedRowCount());
+
+       }
+}

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