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