001 package nl.cwi.sen1.visplugin.csvexport;
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 CsvExportControllerTest extends TestCase {
017
018 private CsvExportController m_tableVisualizationController;
019 private PureFactory m_factory;
020
021 /**
022 * Fixture setup.
023 * @author Antoine Savelkoul
024 * @author Chris Woolderink
025 * @date 14-03-2007
026 */
027 protected void setUp() throws Exception {
028 super.setUp();
029
030 m_factory = VisualizationFactorySingleton.getPureFactoryInstance();
031 m_tableVisualizationController = new CsvExportController();
032 m_tableVisualizationController.initPluginController(m_factory);
033 }
034
035 /**
036 * Tests if the TableVisualizationController has been created succesfully
037 * @author Antoine Savelkoul
038 * @author Chris Woolderink
039 * @date 14-03-2007
040 */
041 public void testTableVisualizationController() {
042 assertNotNull(m_tableVisualizationController);
043 }
044
045 /**
046 * Tests if a visualization window can be created.
047 * @author Antoine Savelkoul
048 * @author Chris Woolderink
049 * @date 07-03-2007
050 */
051 public void testCreateWindow() {
052 // Create the window
053 VisualizationPluginWindow visualizationPluginWindow;
054 visualizationPluginWindow = m_tableVisualizationController.createWindow();
055
056 // Test if the window has been created
057 assertNotNull(visualizationPluginWindow);
058
059 // Test if the window is of the right type
060 assertEquals(CsvExportVisualizationWindow.class, visualizationPluginWindow.getClass());
061 }
062
063 /**
064 * Tests if the right plugin name is given when requested.
065 * @author Antoine Savelkoul
066 * @date 07-03-2007
067 */
068 public void testGetPluginName() {
069 assertEquals( m_tableVisualizationController.getPluginName(), "CSV Export Visualization Plugin" );
070 }
071
072 /**
073 * Tests if there will no list of supported types will be given when asked. This because
074 * the isTypeSupported method will be used instead.
075 * @author Antoine Savelkoul
076 * @date 14-03-2007
077 */
078 public void testGetSupportedTypes() {
079 ATerm[] atermList = m_tableVisualizationController.getSupportedTypes();
080 assertTrue(atermList.length == 0);
081 }
082
083 /**
084 * Test for the supported types.
085 * @author Anton Lycklama
086 * @author Bas Basten
087 * @date 9-3-2007
088 */
089 public void testIsTypeSupported() {
090 ATerm resultTrue = m_factory.make("snd-value(vp-type-supported(<bool>))", new Boolean(true));
091 ATerm resultFalse = m_factory.make("snd-value(vp-type-supported(<bool>))", new Boolean(false));
092
093 // Should succeed
094 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str])")), resultTrue);
095 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([int])")), resultTrue);
096 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([loc])")), resultTrue);
097 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,str])")), resultTrue);
098 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,int])")), resultTrue);
099 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([loc,int])")), resultTrue);
100 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,str,str])")), resultTrue);
101 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,int,str])")), resultTrue);
102 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([int,str,loc])")), resultTrue);
103 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("set(int)")), resultTrue);
104 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("bag(int)")), resultTrue);
105
106 // Should fail
107 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("str")), resultFalse);
108 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("loc")), resultFalse);
109 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("int")), resultFalse);
110 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("bool")), resultFalse);
111 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("relation([str,relation([str])])")), resultFalse);
112 assertEquals(m_tableVisualizationController.vpIsTypeSupported(makeATerm("set(relation([int,str]))")), resultFalse);
113 }
114
115 /**
116 * Creates an ATerm
117 * @param type the type of ATerm to be created
118 * @return the created ATerm
119 */
120 private ATerm makeATerm(String type) {
121 return m_factory.make(type);
122 }
123 }
124
125