001    package nl.cwi.sen1.visplugin.table;
002    
003    import junit.framework.TestCase;
004    import nl.cwi.sen1.visplugin.VisualizationFactorySingleton;
005    import nl.cwi.sen1.visplugin.VisualizationPluginWindow;
006    import aterm.ATerm;
007    import aterm.pure.PureFactory;
008    
009    /**
010     * Test class for the TableVisualization Plugin.
011     * @author  Srinivasan Tharmarajah
012     * @author  Wasim Alsaqaf
013     * @author  Antoine Savelkoul
014     * @date    07-03-2007
015     */
016    public class TableVisualizationControllerTest extends TestCase {
017    
018        private TableVisualizationController m_tableVisualizationController;
019    
020        static final String m_fileName = "graph.rstore";
021    
022        /**
023         * Fixture setup.
024         * @author  Srinivasan Tharmarajah
025         * @author  Wasim Alsaqaf
026         * @date    20-2-2007
027         */
028        protected void setUp() throws Exception {
029            super.setUp();
030    
031            m_tableVisualizationController = new TableVisualizationController();
032            PureFactory pureFactory = VisualizationFactorySingleton.getPureFactoryInstance();
033            m_tableVisualizationController.initPluginController(pureFactory);
034        }
035    
036        /**
037         * Tests if the TableVisualizationController can be created succesfully
038         *
039         * @author Antoine Savelkoul
040         * @author Srinivasan Tharmarajah
041         * @author Wasim Alsaqaf
042         * @date   07-03-2007
043         */
044        public void testTableVisualizationController() {
045            TableVisualizationController tableVisualizationController = new TableVisualizationController();
046            assertNotNull(tableVisualizationController);
047        }
048    
049        /**
050         * Tests if a visualization window can be created.
051         *
052         * @author Antoine Savelkoul
053         * @author Srinivasan Tharmarajah
054         * @author Wasim Alsaqaf
055         * @date 07-03-2007
056         */
057        public void testCreateWindow() {
058            VisualizationPluginWindow visualizationPluginWindow;
059            visualizationPluginWindow = m_tableVisualizationController.createWindow();
060            // Tests if the window can be created
061            assertNotNull(visualizationPluginWindow);
062            // Tests if the window is of the right type
063            assertEquals(TableVisualizationWindow.class, visualizationPluginWindow.getClass());
064        }
065    
066        /**
067         * Tests if the right plugin name is given when requested.
068         *
069         * @author Antoine Savelkoul
070         * @date 07-03-2007
071         */
072        public void testGetPluginName() {
073            assertEquals( m_tableVisualizationController.getPluginName(), "Table Visualization Plugin" );
074        }
075    
076        /**
077         * Test for the supported types.
078         *
079         * @author  Anton Lycklama
080         * @author  Bas Basten
081         * @date    9-3-2007
082         */
083        public void testIsTypeSupported() {
084            PureFactory pureFactory = VisualizationFactorySingleton.getPureFactoryInstance();
085            ATerm resultTrue = pureFactory.make("snd-value(vp-type-supported(<bool>))", new Boolean(true));
086            ATerm resultFalse = pureFactory.make("snd-value(vp-type-supported(<bool>))", new Boolean(false));
087    
088            // Should succeed
089            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str])")), resultTrue);
090            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([int])")), resultTrue);
091            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([loc])")), resultTrue);
092            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,str])")), resultTrue);
093            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,int])")), resultTrue);
094            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([loc,int])")), resultTrue);
095            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,str,str])")), resultTrue);
096            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,int,str])")), resultTrue);
097            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([int,str,loc])")), resultTrue);
098            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("set(int)")), resultTrue);
099            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("bag(int)")), resultTrue);
100    
101            // Should fail
102            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("str")), resultFalse);
103            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("loc")), resultFalse);
104            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("int")), resultFalse);
105            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("bool")), resultFalse);
106            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,relation([str])])")), resultFalse);
107            assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("set(relation([int,str]))")), resultFalse);
108        }
109    
110        private ATerm makeATerm(String type) {
111            PureFactory factory = VisualizationFactorySingleton.getPureFactoryInstance();
112            return factory.make(type);
113            // return m_factory.RTypeFromString(type);
114        }
115    }
116    
117