KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openi > mondrian > datasource > DataSourceTest


1 /*********************************************************************************
2  * The contents of this file are subject to the OpenI Public License Version 1.0
3  * ("License"); You may not use this file except in compliance with the
4  * License. You may obtain a copy of the License at
5  * http://www.openi.org/docs/LICENSE.txt
6  *
7  * Software distributed under the License is distributed on an "AS IS" basis,
8  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
9  * the specific language governing rights and limitations under the License.
10  *
11  * The Original Code is: OpenI Open Source
12  *
13  * The Initial Developer of the Original Code is Loyalty Matrix, Inc.
14  * Portions created by Loyalty Matrix, Inc. are
15  * Copyright (C) 2005 Loyalty Matrix, Inc.; All Rights Reserved.
16  *
17  * Contributor(s): ______________________________________.
18  *
19  ********************************************************************************/

20 package org.openi.mondrian.datasource;
21
22 import junit.framework.TestCase;
23 import org.openi.test.Util;
24 import java.io.IOException JavaDoc;
25 import java.util.ArrayList JavaDoc;
26 import java.util.List JavaDoc;
27 import javax.xml.transform.TransformerException JavaDoc;
28
29
30 /**
31  * @author Uddhab Pant <br>
32  * @version $Revision: 1.3 $ $Date: 2006/04/12 00:39:12 $ <br>
33  *
34  * Mondrian datasource test case.
35  *
36  */

37 public class DataSourceTest extends TestCase {
38     private DataSourceConfig datasourceConfig;
39     private String JavaDoc datasourceXmlFile;
40     private String JavaDoc mondrianXslFile;
41     private List JavaDoc datasources;
42
43     /**
44      * setUp
45      *
46      * @throws Exception
47      * @todo Implement this junit.framework.TestCase method
48      */

49     protected void setUp() throws Exception JavaDoc {
50         datasourceXmlFile = genDirName() + "/datasources.xml";
51         mondrianXslFile = genDirName() + "/mondrian.xsl";
52
53         datasourceConfig = new DataSourceConfig(mondrianXslFile,
54                 datasourceXmlFile);
55         datasources = new ArrayList JavaDoc();
56     }
57
58     /**
59      * Tests mondrian datasources.xml file save.
60      *
61      *
62      * @throws IOException
63      * @throws TransformerException
64      */

65     public void testSetDataSources() throws IOException JavaDoc, TransformerException JavaDoc {
66         datasources = addDataSources();
67         datasourceConfig.setDataSources(datasources);
68     }
69
70     /**
71      *
72      * Tests datasources read from mondrian datasources.xml file.
73      *
74      * @throws IOException
75      * @throws TransformerException
76      */

77     public void testGetDataSources() throws IOException JavaDoc, TransformerException JavaDoc {
78         List JavaDoc 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     /**
124      * Helper method to add datasource
125      *
126      * @return List
127      */

128     private List JavaDoc 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 JavaDoc {
159         datasources = null;
160         datasourceConfig = null;
161         datasourceXmlFile = null;
162         mondrianXslFile = null;
163     }
164
165     private String JavaDoc genDirName() {
166         String JavaDoc dirName = this.getClass().getPackage().getName();
167         dirName = Util.findTestDirectory() + "/" + dirName.replace('.', '/');
168
169         return dirName;
170     }
171 }
172
Popular Tags