01: /* Copyright 2005 The JA-SIG Collaborative. All rights reserved.
02: * See license distributed with this file and
03: * available online at http://www.uportal.org/license.html
04: */
05:
06: package org.jasig.portal.rdbm.pool;
07:
08: import java.util.Properties;
09:
10: import org.jasig.portal.properties.PropertiesManager;
11:
12: import junit.framework.TestCase;
13:
14: /**
15: * Testcase for PooledDataSourceFactoryFactory.
16: * @version $Revision: 35848 $ $Date: 2005-05-24 09:42:17 -0700 (Tue, 24 May 2005) $
17: */
18: public class PooledDataSourceFactoryFactoryTest extends TestCase {
19:
20: protected void setUp() throws Exception {
21: super .setUp();
22: PooledDataSourceFactoryFactory.reset();
23: }
24:
25: protected void tearDown() throws Exception {
26: super .tearDown();
27: PooledDataSourceFactoryFactory.reset();
28: }
29:
30: /**
31: * Test getting a PooledDataSourceFactory that we've configured via
32: * PropertiesManager.
33: */
34: public void testGetPooledDataSourceFactory() {
35: Properties dummyProperties = new Properties();
36: dummyProperties
37: .put(
38: PooledDataSourceFactoryFactory.POOLED_DATA_SOURCE_FACTORY_PROPERTY,
39: "wombat");
40:
41: PropertiesManager.setProperties(dummyProperties);
42:
43: IPooledDataSourceFactory factory = PooledDataSourceFactoryFactory
44: .getPooledDataSourceFactory();
45: assertNotNull(factory);
46: System.out.println(factory.getClass().getName());
47: assertTrue(PooledDataSourceFactoryFactory.DEFAULT_POOLED_DATASOURCE_FACTORY == factory
48: .getClass());
49:
50: // now set the property and assert that we get the same singleton instance
51: // (we do not un-fail-over and use the fixed property, e.g.)
52:
53: dummyProperties
54: .put(
55: PooledDataSourceFactoryFactory.POOLED_DATA_SOURCE_FACTORY_PROPERTY,
56: StubPooledDataSourceFactory.class.getName());
57: PropertiesManager.setProperties(dummyProperties);
58:
59: IPooledDataSourceFactory factory2 = PooledDataSourceFactoryFactory
60: .getPooledDataSourceFactory();
61: assertSame(factory, factory2);
62:
63: }
64:
65: /**
66: * Test falling back on our default when our property is set to a String that doesn't
67: * represent a class at all.
68: */
69: public void testGetPooledDataSourceFactoryBadProperty() {
70: Properties dummyProperties = new Properties();
71: dummyProperties
72: .put(
73: PooledDataSourceFactoryFactory.POOLED_DATA_SOURCE_FACTORY_PROPERTY,
74: StubPooledDataSourceFactory.class.getName());
75:
76: PropertiesManager.setProperties(dummyProperties);
77:
78: IPooledDataSourceFactory factory = PooledDataSourceFactoryFactory
79: .getPooledDataSourceFactory();
80: assertNotNull(factory);
81: System.out.println(factory.getClass().getName());
82: assertTrue(StubPooledDataSourceFactory.class == factory
83: .getClass());
84:
85: // now destroy the properties and assert that we get the same singleton instance
86:
87: dummyProperties
88: .put(
89: PooledDataSourceFactoryFactory.POOLED_DATA_SOURCE_FACTORY_PROPERTY,
90: "wombat");
91: PropertiesManager.setProperties(dummyProperties);
92:
93: IPooledDataSourceFactory factory2 = PooledDataSourceFactoryFactory
94: .getPooledDataSourceFactory();
95: assertSame(factory, factory2);
96:
97: }
98:
99: }
|