1 20 package org.openi.mondrian.datasource; 21 22 import junit.framework.TestCase; 23 import org.openi.test.Util; 24 import java.io.IOException ; 25 import java.util.ArrayList ; 26 import java.util.List ; 27 import javax.xml.transform.TransformerException ; 28 29 30 37 public class DataSourceTest extends TestCase { 38 private DataSourceConfig datasourceConfig; 39 private String datasourceXmlFile; 40 private String mondrianXslFile; 41 private List datasources; 42 43 49 protected void setUp() throws Exception { 50 datasourceXmlFile = genDirName() + "/datasources.xml"; 51 mondrianXslFile = genDirName() + "/mondrian.xsl"; 52 53 datasourceConfig = new DataSourceConfig(mondrianXslFile, 54 datasourceXmlFile); 55 datasources = new ArrayList (); 56 } 57 58 65 public void testSetDataSources() throws IOException , TransformerException { 66 datasources = addDataSources(); 67 datasourceConfig.setDataSources(datasources); 68 } 69 70 77 public void testGetDataSources() throws IOException , TransformerException { 78 List datasources = datasourceConfig.getDataSources(); 79 assertNotNull("datasources is null", datasources); 80 assertNotNull("first datasource is null", datasources.get(0)); 81 assertNotNull("second datasource is null", datasources.get(1)); 82 83 DataSource datasource1 = (DataSource) datasources.get(0); 84 DataSource datasource2 = (DataSource) datasources.get(1); 85 86 assertEquals("datasource name is not equal", "MondrianFoodMart", 87 ((DataSource) datasource1).getDataSourceName()); 88 assertEquals("datasource description is not equal", 89 "FoodMart 2000 Data Warehouse", 90 ((DataSource) datasource1).getDataSourceDescription()); 91 assertEquals("datasource url is not equal", 92 "http://localhost:8080/openi/xmla", 93 ((DataSource) datasource1).getUrl()); 94 assertEquals("datasource info is not equal", 95 "Provider=test;Jdbc=jdbc:mysql://testhost/foodmart?user=test&password=test;JdbcDrivers=test;Catalog=/WEB-INF/test/foodmart.xml", 96 ((DataSource) datasource1).getDataSourceInfo()); 97 assertEquals("provider name is not equal", "Mondrian", 98 ((DataSource) datasource1).getProviderName()); 99 assertEquals("provider type is not equal", "MDP", 100 ((DataSource) datasource1).getProviderType()); 101 assertEquals("authentication mode is not equal", "Unauthenticated", 102 ((DataSource) datasource1).getAuthenticationMode()); 103 104 assertEquals("datasource name is not equal", "TestMondrianFoodMart", 105 ((DataSource) datasource2).getDataSourceName()); 106 assertEquals("datasource description is not equal", 107 "Test FoodMart 2000 Data Warehouse", 108 ((DataSource) datasource2).getDataSourceDescription()); 109 assertEquals("datasource url is not equal", 110 "http://testhost:8080/openi/xmla", 111 ((DataSource) datasource2).getUrl()); 112 assertEquals("datasource info is not equal", 113 "Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver", 114 ((DataSource) datasource2).getDataSourceInfo()); 115 assertEquals("provider name is not equal", "Mondrian", 116 ((DataSource) datasources.get(1)).getProviderName()); 117 assertEquals("provider type is not equal", "MDP", 118 ((DataSource) datasource2).getProviderType()); 119 assertEquals("authentication mode is not equal", "Authenticated", 120 ((DataSource) datasource2).getAuthenticationMode()); 121 } 122 123 128 private List addDataSources() { 129 DataSource datasource1 = new DataSource(); 130 131 datasource1.setDataSourceName("MondrianFoodMart"); 132 datasource1.setDataSourceDescription("FoodMart 2000 Data Warehouse"); 133 datasource1.setUrl("http://localhost:8080/openi/xmla"); 134 datasource1.setDataSourceInfo( 135 "Provider=test;Jdbc=jdbc:mysql://testhost/foodmart?user=test&password=test;JdbcDrivers=test;Catalog=/WEB-INF/test/foodmart.xml"); 136 datasource1.setProviderName("Mondrian"); 137 datasource1.setProviderType("MDP"); 138 datasource1.setAuthenticationMode("Unauthenticated"); 139 140 DataSource datasource2 = new DataSource(); 141 142 datasource2.setDataSourceName("TestMondrianFoodMart"); 143 datasource2.setDataSourceDescription( 144 "Test FoodMart 2000 Data Warehouse"); 145 datasource2.setUrl("http://testhost:8080/openi/xmla"); 146 datasource2.setDataSourceInfo( 147 "Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver"); 148 datasource2.setProviderName("Mondrian"); 149 datasource2.setProviderType("MDP"); 150 datasource2.setAuthenticationMode("Authenticated"); 151 152 datasources.add(datasource1); 153 datasources.add(datasource2); 154 155 return datasources; 156 } 157 158 protected void tearDown() throws Exception { 159 datasources = null; 160 datasourceConfig = null; 161 datasourceXmlFile = null; 162 mondrianXslFile = null; 163 } 164 165 private String genDirName() { 166 String dirName = this.getClass().getPackage().getName(); 167 dirName = Util.findTestDirectory() + "/" + dirName.replace('.', '/'); 168 169 return dirName; 170 } 171 } 172 | Popular Tags |