Project

General

Profile

Download (11.1 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.database;
11

    
12
import static org.junit.Assert.assertEquals;
13
import static org.junit.Assert.assertNotNull;
14

    
15
import org.apache.log4j.Logger;
16
import org.junit.After;
17
import org.junit.AfterClass;
18
import org.junit.Before;
19
import org.junit.BeforeClass;
20
import org.junit.Test;
21
import org.springframework.beans.factory.config.BeanDefinition;
22

    
23
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
24

    
25
/**
26
 * @author a.mueller
27
 * @since 18.12.2008
28
 */
29
public class CdmDataSourceTest {
30
	private static final Logger logger = Logger.getLogger(CdmDataSourceTest.class);
31

    
32
	private static String server;
33
	private static String database;
34
	private static String username;
35
	private static String pwd;
36
	private static int port;
37
	private static ICdmDataSource datasource;
38

    
39
	/**
40
	 * @throws java.lang.Exception
41
	 */
42
	@BeforeClass
43
	public static void setUpBeforeClass() throws Exception {
44
	}
45

    
46
	/**
47
	 * @throws java.lang.Exception
48
	 */
49
	@AfterClass
50
	public static void tearDownAfterClass() throws Exception {
51
	}
52

    
53
	/**
54
	 * @throws java.lang.Exception
55
	 */
56
	@Before
57
	public void setUp() throws Exception {
58
		server = "myServer";
59
		database = "myDatabase";
60
		username = "myUsername";
61
		pwd = "myPassword";
62
		port = 80;
63
		datasource = CdmDataSource.NewMySqlInstance(server, database, port, username, pwd);
64

    
65
	}
66

    
67
	/**
68
	 * @throws java.lang.Exception
69
	 */
70
	@After
71
	public void tearDown() throws Exception {
72
	}
73

    
74
//*************** TESTS ***********************************************
75

    
76
	/**
77
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewMySqlInstance(java.lang.String, java.lang.String, java.lang.String, java.lang.String, NomenclaturalCode)}.
78
	 */
79
	@Test
80
	public void testNewMySqlInstanceStringStringStringString() {
81
		ICdmDataSource ds = CdmDataSource.NewMySqlInstance(server, database, username, pwd);
82
		assertNotNull("NewMySqlInstance(String, String, String, String) should not return null ", ds);
83
		assertEquals(server, ds.getServer());
84
		assertEquals(database, ds.getDatabase());
85
		assertEquals(username, ds.getUsername());
86
		assertEquals(pwd, ds.getPassword());
87
		assertEquals(DatabaseTypeEnum.MySQL, ds.getDatabaseType());
88
	}
89

    
90
	/**
91
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewMySqlInstance(java.lang.String, java.lang.String, int, java.lang.String)}.
92
	 */
93
	@Test
94
	public void testNewMySqlInstanceStringStringIntStringString() {
95
		ICdmDataSource ds = CdmDataSource.NewMySqlInstance(server, database, port, username, pwd);
96
		assertNotNull("NewMySqlInstance(String, String, int, String, String) should not return null ", ds);
97
		assertEquals(server, ds.getServer());
98
		assertEquals(database, ds.getDatabase());
99
		assertEquals(username, ds.getUsername());
100
		assertEquals(pwd, ds.getPassword());
101
		assertEquals(port, ds.getPort());
102
		assertEquals(DatabaseTypeEnum.MySQL, ds.getDatabaseType());
103
	}
104

    
105
	/**
106
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewSqlServer2005Instance(java.lang.String, java.lang.String, java.lang.String, java.lang.String)}.
107
	 */
108
	@Test
109
	public void testNewSqlServer2005InstanceStringStringStringString() {
110
		ICdmDataSource ds = CdmDataSource.NewSqlServer2005Instance(server, database, -1, username, pwd);
111
		assertNotNull("NewSqlServer2005Instance(String, String, String, String) should not return null ", ds);
112
		assertEquals(server, ds.getServer());
113
		assertEquals(database, ds.getDatabase());
114
		assertEquals(username, ds.getUsername());
115
		assertEquals(pwd, ds.getPassword());
116
		assertEquals(DatabaseTypeEnum.SqlServer2005, ds.getDatabaseType());
117
	}
118

    
119
	/**
120
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewSqlServer2005Instance(java.lang.String, java.lang.String, int, java.lang.String, java.lang.String)}.
121
	 */
122
	@Test
123
	public void testNewSqlServer2005InstanceStringStringIntStringString() {
124
		ICdmDataSource ds = CdmDataSource.NewSqlServer2005Instance(server, database, port, username, pwd);
125
		assertNotNull("NewSqlServer2005Instance(String, String, String, String) should not return null ", ds);
126
		assertEquals(server, ds.getServer());
127
		assertEquals(database, ds.getDatabase());
128
		assertEquals(username, ds.getUsername());
129
		assertEquals(pwd, ds.getPassword());
130
		assertEquals(port, ds.getPort());
131
		assertEquals(DatabaseTypeEnum.SqlServer2005, ds.getDatabaseType());
132
	}
133

    
134
	/**
135
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewH2EmbeddedInstance(java.lang.String, java.lang.String, java.lang.String)}.
136
	 */
137
	@Test
138
	public void testNewH2EmbeddedInstanceStringStringString() {
139
		ICdmDataSource ds = CdmDataSource.NewH2EmbeddedInstance(database, username, pwd, null);
140
		assertNotNull("NewH2EmbeddedInstance(String, String, String) should not return null ", ds);
141
		assertEquals(null, ds.getServer());  //TODO right?
142
		assertEquals(database, ds.getDatabase());
143
		assertEquals(username, ds.getUsername());
144
		assertEquals(pwd, ds.getPassword());
145
		assertEquals(DatabaseTypeEnum.H2, ds.getDatabaseType());
146
	}
147

    
148
	/**
149
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#NewH2InMemoryInstance()}.
150
	 */
151
	@Test
152
	public void testNewH2InMemoryInstance() {
153
		ICdmDataSource ds = CdmDataSource.NewH2InMemoryInstance();
154
		assertNotNull("NewH2InMemoryInstance() should not return null ", ds);
155
		assertEquals(DatabaseTypeEnum.H2, ds.getDatabaseType());
156
		assertEquals(null, ds.getServer());
157
		assertEquals(null, ds.getDatabase());
158
		assertEquals("sa", ds.getUsername()); //TODO right?
159
		assertEquals("", ds.getPassword());
160
		assertEquals(DatabaseTypeEnum.H2, ds.getDatabaseType());
161
	}
162

    
163
	/**
164
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#CdmDataSource(eu.etaxonomy.cdm.database.DatabaseTypeEnum, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.database.H2Mode)}.
165
	 */
166
	@Test
167
	public void testCdmDataSource() {
168
		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
169
		H2Mode h2Mode = H2Mode.EMBEDDED;
170
		String filePath = "path";
171
		ICdmDataSource ds = new CdmDataSource(dbType, server, database, port, username, pwd, filePath, h2Mode);
172
		assertNotNull("new datasource() should not be null", ds);
173
	}
174

    
175
	/**
176
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getName()}.
177
	 */
178
	@Test
179
	public void testGetName() {
180
		assertNotNull("datasource should not be null", datasource);
181
		assertEquals(database, datasource.getName());
182
	}
183

    
184
	/**
185
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getDatasourceBean()}.
186
	 */
187
	@Test
188
	public void testGetDatasourceBean() {
189
		BeanDefinition bean = datasource.getDatasourceBean();
190
		assertNotNull(bean);
191
		assertEquals("the bean definition should have 4 properties: url, driverClassname, username, password", 4, bean.getPropertyValues().size());
192
		//TODO to be continued
193
	}
194

    
195
	/**
196
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getHibernatePropertiesBean(eu.etaxonomy.cdm.database.DbSchemaValidation)}.
197
	 */
198
	@Test
199
	public void testGetHibernatePropertiesBeanDbSchemaValidation() {
200
		logger.warn("Not yet implemented");
201
	}
202

    
203
	/**
204
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getHibernatePropertiesBean(eu.etaxonomy.cdm.database.DbSchemaValidation, java.lang.Boolean, java.lang.Boolean, java.lang.Class)}.
205
	 */
206
	@Test
207
	public void testGetHibernatePropertiesBeanDbSchemaValidationBooleanBooleanClassOfQextendsCacheProvider() {
208
		logger.warn("Not yet implemented");
209
	}
210

    
211
	/**
212
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getInitMethodName()}.
213
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#setInitMethodName(java.lang.String)}.
214
	 */
215
	@Test
216
	public void testGetSetInitMethodName() {
217
		String initMethodName = "init";
218
		((CdmDataSource)datasource).setInitMethodName(initMethodName);
219
		assertEquals(initMethodName, ((CdmDataSource)datasource).getInitMethodName());
220
		((CdmDataSource)datasource).setInitMethodName(null);
221
		assertEquals(null, ((CdmDataSource)datasource).getInitMethodName());
222
	}
223

    
224
	/**
225
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getDestroyMethodName()}.
226
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#setDestroyMethodName(java.lang.String)}.
227
	 */
228
	@Test
229
	public void testGetSetDestroyMethodName() {
230
		String destroyMethodName = "destroy";
231
		((CdmDataSource)datasource).setDestroyMethodName(destroyMethodName);
232
		assertEquals(destroyMethodName, ((CdmDataSource)datasource).getDestroyMethodName());
233
		((CdmDataSource)datasource).setDestroyMethodName(null);
234
		assertEquals(null, ((CdmDataSource)datasource).getDestroyMethodName());
235
	}
236

    
237

    
238
	/**
239
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getDatabase()}.
240
	 */
241
	@Test
242
	public void testGetDatabase() {
243
		assertEquals(database, datasource.getDatabase());
244
	}
245

    
246
	/**
247
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getDatabaseType()}.
248
	 */
249
	@Test
250
	public void testGetDatabaseType() {
251
		assertEquals(DatabaseTypeEnum.MySQL, datasource.getDatabaseType());
252
	}
253

    
254
	/**
255
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getFilePath()}.
256
	 */
257
	@Test
258
	public void testGetFilePath() {
259
		assertEquals(null, datasource.getFilePath());
260
		String filePath = "path";
261
		ICdmDataSource ds = new CdmDataSource(DatabaseTypeEnum.H2, server, database, port, username, pwd, filePath, H2Mode.EMBEDDED);
262
		assertNotNull("new datasource() should not be null", ds);
263
		assertEquals(filePath, ds.getFilePath());
264
	}
265

    
266
	/**
267
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getPort()}.
268
	 */
269
	@Test
270
	public void testGetPort() {
271
		assertEquals(port, datasource.getPort());
272
	}
273

    
274
	/**
275
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getServer()}.
276
	 */
277
	@Test
278
	public void testGetServer() {
279
		assertEquals(server, datasource.getServer());
280
	}
281

    
282
	/**
283
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getMode()}.
284
	 */
285
	@Test
286
	public void testGetMode() {
287
		assertEquals(null, datasource.getFilePath());
288
		String filePath = "path";
289
		H2Mode mode = H2Mode.EMBEDDED;
290
		ICdmDataSource ds = new CdmDataSource(DatabaseTypeEnum.H2, server, database, port, username, pwd, filePath, mode);
291
		assertNotNull("new datasource() should not be null", ds);
292
		assertEquals(mode, ds.getMode());
293
	}
294

    
295
	/**
296
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getPassword()}.
297
	 */
298
	@Test
299
	public void testGetPassword() {
300
		assertEquals(pwd, datasource.getPassword());
301
	}
302

    
303
	/**
304
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSource#getUserName()}.
305
	 */
306
	@Test
307
	public void testGetUsername() {
308
		assertEquals(username, datasource.getUsername());
309
	}
310

    
311
	/**
312
	 * Test method for {@link eu.etaxonomy.cdm.database.CdmDataSourceBase#testConnection()}.
313
	 */
314
	@Test
315
	public void testTestConnection() {
316
		logger.warn("Not yet implemented");
317
	}
318
}
(1-1/6)