001    package nl.cwi.sen1.visplugin.table.model;
002    
003    import junit.framework.TestCase;
004    import nl.cwi.sen1.relationstores.Factory;
005    import nl.cwi.sen1.relationstores.types.RElem;
006    import nl.cwi.sen1.relationstores.types.RElemElements;
007    import nl.cwi.sen1.relationstores.types.RTuple;
008    import nl.cwi.sen1.visplugin.VisualizationFactorySingleton;
009    
010    /**
011     * JUnit Testcase used to test the TableVisualizationWindow class.
012     *
013     * @author Antoine Savelkoul
014     * @date 09-03-2007
015     */
016    public class SortableTableModelTest extends TestCase {
017    
018        private SortableTableModel m_model;
019        private Factory m_factory;
020        private RTuple m_testRTuple;
021    
022        /**
023         * Set-up code for the tests.
024         *
025         * @author Antoine Savelkoul
026         * @author Anton Gerdessen
027         * @author Arend van Beelen
028         * @date 13-03-2007
029         */
030        public void setUp() {
031            m_model = new SortableTableModel();
032            m_factory = VisualizationFactorySingleton.getFactoryInstance();
033    
034            String relStrStr = "rtuple(\"STRING_TABLE\"," + "relation([str,str]),"
035                    + "set(["
036                    + "tuple([str(\"Row 1\"),str(\"abc\")]),"
037                    + "tuple([str(\"Row 2\"),str(\"bcd\")]),"
038                    + "tuple([str(\"Row 3\"),str(\"abd\")])"
039                    + "]))";
040            m_testRTuple = m_factory.RTupleFromString(relStrStr);
041        }
042    
043        /**
044         * Tests the getColumnCount() method to see if it's initialized properly by
045         * setRTupleData().
046         *
047         * @author Anton Gerdessen
048         * @author Arend van Beelen
049         * @date 13-03-2007
050         */
051        public void testGetColumnCount() {
052            m_model.setRTupleData(m_testRTuple);
053            assertEquals(2, m_model.getColumnCount());
054        }
055    
056        /**
057         * Tests the getColumnName() method to see if it's initialized properly by
058         * setRTupleData().
059         *
060         * @author Anton Gerdessen
061         * @author Arend van Beelen
062         * @date 13-03-2007
063         */
064        public void testGetColumnName() {
065            m_model.setRTupleData(m_testRTuple);
066            assertEquals("str [0]", m_model.getColumnName(0));
067        }
068    
069        /**
070         * Tests the getValueAt() method.
071         *
072         * @author Antoine Savelkoul
073         * @author Anton Gerdessen
074         * @author Arend van Beelen
075         * @date 09-03-2007
076         */
077        public void testGetValueAt() {
078            m_model.setRTupleData(m_testRTuple);
079            assertEquals("abd", m_model.getValueAt(2, 1));
080        }
081    
082        /**
083         * Tests the getRTupleVariable() method.
084         *
085         * @author Anton Gerdessen
086         * @author Arend van Beelen
087         * @date 13-03-2007
088         */
089        public void testGetRTupleVariable() {
090            m_model.setRTupleData(m_testRTuple);
091            assertEquals(m_testRTuple.getVariable(), m_model.getRTupleVariable());
092        }
093    
094        /**
095         * Tests the getRTupleRType() method.
096         *
097         * @author Anton Gerdessen
098         * @author Arend van Beelen
099         * @date 13-03-2007
100         */
101        public void testGetRTupleRType() {
102            m_model.setRTupleData(m_testRTuple);
103            assertEquals(m_testRTuple.getRtype(), m_model.getRTupleRType());
104        }
105    
106        /**
107         * Tests the getRElemForRow() method.
108         *
109         * @author Anton Gerdessen
110         * @author Arend van Beelen
111         * @date 13-03-2007
112         */
113        public void testGetRElemForRow() {
114            m_model.setRTupleData(m_testRTuple);
115            RElem value = m_testRTuple.getValue();
116            RElemElements elements = value.getElements();
117            assertEquals(elements.getRElemAt(2), m_model.getRElemForRow(2));
118        }
119    
120        /**
121         *  Tests the getRElemForRow() method after sorting on second column.
122         *
123         * @author Anton Gerdessen
124         * @author Arend van Beelen
125         * @date 13-03-2007
126         */
127        public void testGetRElemForRowWithSorting() {
128            m_model.setRTupleData(m_testRTuple);
129            m_model.sortByColumn(1, true);
130            RElem value = m_testRTuple.getValue();
131            RElemElements elements = value.getElements();
132            assertEquals(elements.getRElemAt(2), m_model.getRElemForRow(1));
133        }
134    }