KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > scenario > standalone > backend > DatabaseBackendTest


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2005 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Mathieu Peltier.
22  * Contributor(s): ______________________________________.
23  */

24
25 package org.objectweb.cjdbc.scenario.standalone.backend;
26
27 import java.sql.SQLException JavaDoc;
28 import java.util.ArrayList JavaDoc;
29
30 import org.objectweb.cjdbc.controller.backend.DatabaseBackend;
31 import org.objectweb.cjdbc.controller.backend.DatabaseBackendSchemaConstants;
32 import org.objectweb.cjdbc.controller.connection.AbstractConnectionManager;
33 import org.objectweb.cjdbc.scenario.templates.NoTemplate;
34 import org.objectweb.cjdbc.scenario.tools.databases.AbstractDatabase;
35 import org.objectweb.cjdbc.scenario.tools.databases.RUBiSDatabase;
36 import org.objectweb.cjdbc.scenario.tools.mock.MockConnectionManager;
37
38 /**
39  * <code>DatabaseBackend</code> test class.
40  *
41  * @author <a HREF="mailto:Mathieu.Peltier@inrialpes.fr">Mathieu Peltier </a>
42  * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend
43  */

44 public class DatabaseBackendTest extends NoTemplate
45 {
46   /** Test database. */
47   private AbstractDatabase database1;
48
49   /** Database backend. */
50   private DatabaseBackend backend1, backend2, backend3, backend4, backend5;
51
52   /** Fake connection manager. */
53   private AbstractConnectionManager connectionManager1, connectionManager2;
54
55   /**
56    * @see junit.framework.TestCase#setUp()
57    */

58   protected void setUp() throws Exception JavaDoc
59   {
60     String JavaDoc level = DatabaseBackendSchemaConstants
61         .getDynamicSchemaLevel(DatabaseBackendSchemaConstants.DynamicPrecisionColumn);
62     backend1 = new DatabaseBackend("backend1", null, "MockDriver1", "URL1",
63         "rubis", "SELECT 1", level);
64     backend2 = new DatabaseBackend("backend2", null, "MockDriver1", "URL1",
65         "rubis", "SELECT 1", level);
66     backend3 = new DatabaseBackend("backend1", null, "MockDriver2", "URL1",
67         "rubis", "SELECT 1", level);
68     backend4 = new DatabaseBackend("backend1", null, "MockDriver1", "URL2",
69         "rubis", "SELECT 1", level);
70     backend5 = new DatabaseBackend("backend1", null, "MockDriver1", "URL1",
71         "rubis", "SELECT 1", level);
72
73     database1 = new RUBiSDatabase();
74     connectionManager1 = new MockConnectionManager(database1);
75     connectionManager2 = new MockConnectionManager(database1);
76
77     backend1.addConnectionManager("vLogin1", connectionManager1);
78     backend1.addConnectionManager("vLogin2", connectionManager2);
79   }
80
81   /**
82    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#equals(Object)
83    */

84   public void testEquals()
85   {
86     assertTrue(backend1.equals(backend1));
87     assertTrue(backend1.equals(backend5));
88     assertFalse(backend1.equals(backend2));
89     assertFalse(backend1.equals(backend3));
90     assertFalse(backend1.equals(backend4));
91   }
92
93   /**
94    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#hasTables(ArrayList)
95    */

96   public void testHasTables()
97   {
98     backend1.setDatabaseSchema(database1.getSchema(), true);
99
100     ArrayList JavaDoc list = new ArrayList JavaDoc();
101     list.add("categories");
102     list.add("regions");
103     list.add("users");
104     list.add("items");
105     list.add("old_items");
106     list.add("bids");
107     list.add("comments");
108     list.add("buy_now");
109     list.add("ids");
110     assertTrue(backend1.hasTables(list));
111
112     list = new ArrayList JavaDoc();
113     list.add("categories");
114     list.add("foo");
115     assertFalse(backend1.hasTables(list));
116   }
117
118   /**
119    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#hasTable(String)
120    */

121   public void testHasTable()
122   {
123     backend1.setDatabaseSchema(database1.getSchema(), true);
124
125     assertTrue(backend1.hasTable("categories"));
126     assertTrue(backend1.hasTable("regions"));
127     assertTrue(backend1.hasTable("users"));
128     assertTrue(backend1.hasTable("items"));
129     assertTrue(backend1.hasTable("old_items"));
130     assertTrue(backend1.hasTable("bids"));
131     assertTrue(backend1.hasTable("comments"));
132     assertTrue(backend1.hasTable("buy_now"));
133     assertTrue(backend1.hasTable("ids"));
134
135     assertFalse(backend1.hasTable("foo"));
136     assertFalse(backend1.hasTable(""));
137     assertFalse(backend1.hasTable(null));
138   }
139
140   /**
141    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#initializeConnections()
142    */

143   public void testInitializeConnections()
144   {
145     try
146     {
147       backend2.initializeConnections();
148       fail("Exception not thrown when trying to initialize connections of an empty database backend");
149     }
150     catch (SQLException JavaDoc ignore)
151     {
152     }
153
154     try
155     {
156       backend1.initializeConnections();
157       assertTrue(backend1.isInitialized());
158     }
159     catch (SQLException JavaDoc e)
160     {
161       fail("Exception thrown " + e);
162     }
163   }
164
165   /**
166    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#finalizeConnections()
167    */

168   public void testFinalizeConnections()
169   {
170     try
171     {
172       backend2.finalizeConnections();
173       fail("Exception not thrown when trying to finalize connections of an empty database backend");
174     }
175     catch (SQLException JavaDoc ignore)
176     {
177     }
178
179     try
180     {
181       backend1.finalizeConnections();
182       assertFalse(backend1.isInitialized());
183     }
184     catch (SQLException JavaDoc e)
185     {
186       fail("Exception thrown " + e);
187     }
188   }
189
190   /**
191    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#getConnectionManager(String)
192    */

193   public void testAddConnectionManager()
194   {
195     assertNull(backend2.getConnectionManager("vLogin1"));
196     backend2.addConnectionManager("vLogin1", connectionManager1);
197     assertEquals(connectionManager1, backend2.getConnectionManager("vLogin1"));
198   }
199
200   /**
201    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#isInitialized()
202    */

203   public void testIsInitialized()
204   {
205     try
206     {
207       assertFalse(backend1.isInitialized());
208     }
209     catch (SQLException JavaDoc e)
210     {
211       fail("Exception thrown " + e);
212     }
213   }
214
215   /**
216    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#getConnectionManager(String)
217    */

218   public void testGetConnectionManager(String JavaDoc vLogin)
219   {
220     backend1.addConnectionManager("vLogin1", connectionManager1);
221     backend1.addConnectionManager("vLogin2", connectionManager2);
222     assertNull(backend1.getConnectionManager("vLogin3"));
223
224     assertNull(backend2.getConnectionManager("vLogin1"));
225   }
226
227   /**
228    * @see org.objectweb.cjdbc.controller.backend.DatabaseBackend#checkDatabaseSchema()
229    */

230   public void testCheckDatabaseSchema()
231   {
232     backend1.checkDatabaseSchema();
233     assertTrue(database1.getSchema().isCompatibleWith(
234         backend1.getDatabaseSchema()));
235   }
236 }
Popular Tags