1 24 25 package org.objectweb.cjdbc.scenario.standalone.backend; 26 27 import java.sql.SQLException ; 28 import java.util.ArrayList ; 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 44 public class DatabaseBackendTest extends NoTemplate 45 { 46 47 private AbstractDatabase database1; 48 49 50 private DatabaseBackend backend1, backend2, backend3, backend4, backend5; 51 52 53 private AbstractConnectionManager connectionManager1, connectionManager2; 54 55 58 protected void setUp() throws Exception 59 { 60 String 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 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 96 public void testHasTables() 97 { 98 backend1.setDatabaseSchema(database1.getSchema(), true); 99 100 ArrayList list = new ArrayList (); 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 (); 113 list.add("categories"); 114 list.add("foo"); 115 assertFalse(backend1.hasTables(list)); 116 } 117 118 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 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 ignore) 151 { 152 } 153 154 try 155 { 156 backend1.initializeConnections(); 157 assertTrue(backend1.isInitialized()); 158 } 159 catch (SQLException e) 160 { 161 fail("Exception thrown " + e); 162 } 163 } 164 165 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 ignore) 176 { 177 } 178 179 try 180 { 181 backend1.finalizeConnections(); 182 assertFalse(backend1.isInitialized()); 183 } 184 catch (SQLException e) 185 { 186 fail("Exception thrown " + e); 187 } 188 } 189 190 193 public void testAddConnectionManager() 194 { 195 assertNull(backend2.getConnectionManager("vLogin1")); 196 backend2.addConnectionManager("vLogin1", connectionManager1); 197 assertEquals(connectionManager1, backend2.getConnectionManager("vLogin1")); 198 } 199 200 203 public void testIsInitialized() 204 { 205 try 206 { 207 assertFalse(backend1.isInitialized()); 208 } 209 catch (SQLException e) 210 { 211 fail("Exception thrown " + e); 212 } 213 } 214 215 218 public void testGetConnectionManager(String 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 230 public void testCheckDatabaseSchema() 231 { 232 backend1.checkDatabaseSchema(); 233 assertTrue(database1.getSchema().isCompatibleWith( 234 backend1.getDatabaseSchema())); 235 } 236 } | Popular Tags |