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.