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; }
private void printInfo() { final DBFacade facade = myFacade; assert facade != null; final ConnectionInfo info = facade.getConnectionInfo(); say(PRINT_INFO_TEMPLATE, info.rdbmsName, info.serverVersion, info.driverVersion, info.databaseName, info.schemaName, info.userName); }
@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); } }); }
@Override public void ensureNoTableOrView(final String... names) { final String[] tableTypes = new String[] {"TABLE","VIEW"}; 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) { for (String name : names) { zapTables(session, connectionInfo, name, tableTypes); } } }); }
@Override public void zapSchema() { final ConnectionInfo connectionInfo = db.getConnectionInfo(); final String schemaName = connectionInfo.schemaName; if (schemaName != null && schemasNotToZap.contains(schemaName)) throw new DBProtectionException(format("The schema %s must not be zapped", schemaName), "zapSchema"); zapSchemaInternally(connectionInfo); }
@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 getConnectionInfo_rdbms() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.rdbmsName).isNotEmpty(); }
@Test public void getConnectionInfo_database() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.databaseName).isNotEmpty(); }
@Test public void getConnectionInfo_schema() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.schemaName).isNotEmpty(); }
@Test public void getConnectionInfo_user() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.userName).isNotEmpty(); }
@Test public void getConnectionInfo_versions() { DB.connect(); ConnectionInfo info = DB.getConnectionInfo(); assertThat(info.serverVersion.isOrGreater(1)); assertThat(info.driverVersion.isOrGreater(1)); }