public static void disconnect() { DB.disconnect(); }
@Override public void zapSchema() { final ConnectionInfo connectionInfo = db.getConnectionInfo(); if (connectionInfo.databaseName == null) throw new IllegalStateException("Cannot clean schema when the database name is unknown"); if (connectionInfo.schemaName == null) throw new IllegalStateException("Cannot clean schema when the schema name is unknown"); db.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { zapTables(session, connectionInfo, "%", null); } }); }
private void initVariablesIfNeeded() { if (!initialized) { assert db.isConnected() : "Expected that is connected to DB"; initVariables(); } }
@Test public void getConnectionInfo_database() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.databaseName).isNotEmpty(); }
@Test public void disconnect() { assert DB != null; DB.disconnect(); assertThat(DB.isConnected()).isFalse(); }
@Test public void connect() { assert DB != null; DB.connect(); assertThat(DB.isConnected()).isTrue(); ConnectionInfo info = DB.getConnectionInfo(); System.out.println("Connection info:"); System.out.println("\tRDBMS: " + info.rdbmsName); System.out.println("\tDatabase: " + info.databaseName); System.out.println("\tSchema: " + info.schemaName); System.out.println("\tUser: " + info.userName); System.out.println("\tServer version: " + info.serverVersion); System.out.println("\tDriver version: " + info.driverVersion); }
@Test public void ping() { assert DB != null; DB.connect(); final DBLeasedSession session = DB.leaseSession(); session.ping(); session.close(); DB.disconnect(); }
@Override public int countTableRows(@NotNull final String tableName) { return db.inSession(new InSession<Integer>() { @Override public Integer run(@NotNull final DBSession session) { return countTableRows(session, tableName); } }); }
@Test public void select_1_in_session() { assert DB != null; DB.connect(); DB.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { final Integer v = session.query("select 1 " + TH.fromSingleRowTable(), Layouts.singleOf(Integer.class)) .run(); assertThat(v).isNotNull() .isEqualTo(1); } }); }
public static void connect() { DB.connect(); }
private void initVariables() { ConnectionInfo info = db.getConnectionInfo(); isOracle = info.rdbmsName.startsWith("Oracle"); isDB2 = info.rdbmsName.startsWith("DB2"); isHsql = info.rdbmsName.startsWith("HSQL"); isDerby = info.rdbmsName.contains("Derby"); fromSingleRowTable = isOracle ? " from dual" : isDB2 || isDerby ? " from sysibm.sysdummy1" : isHsql ? " from information_schema.schemata limit 1" : ""; initialized = true; }
@Test public void select_1_in_transaction() { assert DB != null; DB.connect(); DB.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { final Integer v = tran.query("select 1 " + TH.fromSingleRowTable(), Layouts.singleOf(Integer.class)) .run(); assertThat(v).isNotNull() .isEqualTo(1); } }); }
protected <T> T query(@NotNull final SqlQuery<T> query) { return DB.inTransaction(new InTransaction<T>() { @Override public T run(@NotNull final DBTransaction tran) { return tran.query(query).run(); } }); }
@Test public void transaction_commit() { TH.ensureNoTableOrView("Tab_1"); TH.performCommand("create table Tab_1 (C1 char(1))"); TH.performCommand("insert into Tab_1 values ('A')"); DBLeasedSession session = DB.leaseSession(); try { assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(1); session.beginTransaction(); session.command("insert into Tab_1 values ('B')").run(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); session.commit(); assertThat(TH.countTableRows(session, "Tab_1")).isEqualTo(2); } finally { session.close(); } }
@NotNull private static DBTestHelper prepareTH(@NotNull final DBFacade db) { Collection<DBTestHelperFactory> helperFactories = Providers.loadAllProviders(DBTestHelperFactory.class, null); for (DBTestHelperFactory helperFactory : helperFactories) { if (helperFactory.supportRdbms().contains(db.rdbms())) { return helperFactory.createTestHelperFor(db); } } throw new IllegalStateException("No test DB helper factory that can support " + db.rdbms()); }
@Test public void get_driver() { Driver driver = DB.getSpecificService(Driver.class, ImplementationAccessibleService.Names.JDBC_DRIVER); assertThat(driver).isNotNull(); }
@Test public void getConnectionInfo_schema() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.schemaName).isNotEmpty(); }
@Test public void intiLocally_openFacade_unknownDatabase() { BaseFederatedProvider provider = new BaseFederatedProvider(); provider.initLocally(); DBFacade facade = provider.openFacade(H2_CONNECTION_STRING, null, 1, true); assertThat(facade.isConnected()).isTrue(); facade.disconnect(); }
@Override public void performCommand(@NotNull final SqlCommand command) { db.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.command(command).run(); } }); }
@Test public void access_metaData() { DB.connect(); final StringBuilder b = new StringBuilder(240); b.append("JDBC DatabaseMetaData:\n"); DB.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { DatabaseMetaData md = session.getSpecificService(DatabaseMetaData.class, ImplementationAccessibleService.Names.JDBC_METADATA); assertThat(md).isNotNull(); try { b.append("\tDatabaseProductName: ").append(md.getDatabaseProductName()).append('\n'); b.append("\tDriverName: ").append(md.getDriverName()).append('\n'); b.append("\tUserName: ").append(md.getUserName()).append('\n'); b.append("\tDatabaseProductVersion: ").append(md.getDatabaseProductVersion()).append('\n'); b.append("\tDriverVersion: ").append(md.getDriverVersion()).append('\n'); b.append("\tExtraNameCharacters: ").append(md.getExtraNameCharacters()).append('\n'); b.append("\tIdentifierQuoteString: ").append(md.getIdentifierQuoteString()).append('\n'); } catch (SQLException e) { throw new RuntimeException(e); } } }); System.out.println(b.toString()); }