KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > hajdbc > sql > TestDataSourceFactory


1 /*
2  * HA-JDBC: High-Availability JDBC
3  * Copyright (c) 2004-2006 Paul Ferraro
4  *
5  * This library is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation; either version 2.1 of the License, or (at your
8  * option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation,
17  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: ferraro@users.sourceforge.net
20  */

21 package net.sf.hajdbc.sql;
22
23 import java.util.Hashtable JavaDoc;
24
25 import javax.naming.Context JavaDoc;
26 import javax.naming.Name JavaDoc;
27 import javax.naming.Reference JavaDoc;
28 import javax.naming.StringRefAddr JavaDoc;
29
30 import net.sf.hajdbc.DatabaseClusterTestCase;
31
32 import org.testng.annotations.AfterClass;
33 import org.testng.annotations.BeforeClass;
34 import org.testng.annotations.Test;
35
36 /**
37  * Unit test for {@link DataSourceFactory}.
38  *
39  * @author Paul Ferraro
40  * @since 1.1
41  */

42 @Test
43 public class TestDataSourceFactory extends DatabaseClusterTestCase
44 {
45     private DataSourceFactory factory = new DataSourceFactory();
46     
47     @BeforeClass
48     public void setUp() throws Exception JavaDoc
49     {
50         super.setUp();
51         
52         DataSource dataSource = new DataSource();
53         
54         dataSource.setCluster("test-datasource-cluster");
55         
56         this.context.bind("datasource", dataSource);
57     }
58
59     @AfterClass
60     public void tearDown() throws Exception JavaDoc
61     {
62         this.context.unbind("datasource");
63         
64         super.tearDown();
65     }
66
67     /**
68      * Test method for {@link DataSourceFactory#getObjectInstance(Object, Name, Context, Hashtable)}
69      */

70     public void testGetObjectInstance()
71     {
72         Reference JavaDoc reference = new Reference JavaDoc("net.sf.hajdbc.sql.DataSource", new StringRefAddr JavaDoc(DataSource.DATABASE_CLUSTER, "test-datasource-cluster"));
73         
74         try
75         {
76             Object JavaDoc object = this.factory.getObjectInstance(reference, null, null, null);
77             
78             assert object != null;
79             assert net.sf.hajdbc.sql.DataSource.class.equals(object.getClass());
80         }
81         catch (Exception JavaDoc e)
82         {
83             assert false : e;
84         }
85     }
86
87     /**
88      * Test method for {@link DataSourceFactory#getObjectInstance(Object, Name, Context, Hashtable)}
89      */

90     public void testNullReferenceGetObjectInstance()
91     {
92         try
93         {
94             Object JavaDoc object = this.factory.getObjectInstance(null, null, null, null);
95             
96             assert object == null;
97         }
98         catch (Exception JavaDoc e)
99         {
100             assert false : e;
101         }
102     }
103
104     /**
105      * Test method for {@link DataSourceFactory#getObjectInstance(Object, Name, Context, Hashtable)}
106      */

107     public void testWrongReferenceGetObjectInstance()
108     {
109         Reference JavaDoc reference = new Reference JavaDoc("net.sf.hajdbc.sql.Driver", new StringRefAddr JavaDoc(DataSource.DATABASE_CLUSTER, "test-datasource-cluster"));
110         
111         try
112         {
113             Object JavaDoc object = this.factory.getObjectInstance(reference, null, null, null);
114             
115             assert object == null;
116         }
117         catch (Exception JavaDoc e)
118         {
119             assert false : e;
120         }
121     }
122
123     /**
124      * Test method for {@link DataSourceFactory#getObjectInstance(Object, Name, Context, Hashtable)}
125      */

126     public void testMissingRefAddrReferenceGetObjectInstance()
127     {
128         Reference JavaDoc reference = new Reference JavaDoc("net.sf.hajdbc.sql.DataSource");
129         
130         try
131         {
132             Object JavaDoc object = this.factory.getObjectInstance(reference, null, null, null);
133             
134             assert object == null;
135         }
136         catch (Exception JavaDoc e)
137         {
138             assert false : e;
139         }
140     }
141
142     /**
143      * Test method for {@link DataSourceFactory#getObjectInstance(Object, Name, Context, Hashtable)}
144      */

145     public void testInvalidRefAddrReferenceGetObjectInstance()
146     {
147         Reference JavaDoc reference = new Reference JavaDoc("net.sf.hajdbc.sql.DataSource", new StringRefAddr JavaDoc(DataSource.DATABASE_CLUSTER, "invalid-name"));
148         
149         try
150         {
151             this.factory.getObjectInstance(reference, null, null, null);
152             
153             assert false;
154         }
155         catch (Exception JavaDoc e)
156         {
157             assert true;
158         }
159     }
160 }
161
Popular Tags