@Test public void generate_sql_type_on_oracle() { assertThat(underTest.generateSqlType(new Oracle())).isEqualTo("CLOB"); }
@Override public void init(DatabaseMetaData metaData) throws SQLException { checkDbVersion(metaData, MIN_SUPPORTED_VERSION); checkDriverVersion(metaData); }
@Test public void should_configure() { assertThat(underTest.getId()).isEqualTo("oracle"); assertThat(underTest.getDefaultDriverClassName()).isEqualTo("oracle.jdbc.OracleDriver"); assertThat(underTest.getValidationQuery()).isEqualTo("SELECT 1 FROM DUAL"); }
@Test public void testBooleanSqlValues() { assertThat(underTest.getTrueSqlValue()).isEqualTo("1"); assertThat(underTest.getFalseSqlValue()).isEqualTo("0"); }
@Test public void testFetchSizeForScrolling() { assertThat(underTest.getScrollDefaultFetchSize()).isEqualTo(200); assertThat(underTest.getScrollSingleRowFetchSize()).isEqualTo(1); }
@Test public void getSqlFromDual() { assertThat(underTest.getSqlFromDual()).isEqualTo("from dual"); }
@Test public void generateSqlType_for_Oracle() { assertThat(underTest.generateSqlType(new Oracle())).isEqualTo("NUMBER(38,0)"); }
@Override public void init(DatabaseMetaData metaData) throws SQLException { checkDbVersion(metaData, MIN_SUPPORTED_VERSION); checkDriverVersion(metaData); }
@Test public void generateSqlType_for_Oracle() { assertThat(underTest.generateSqlType(new Oracle())).isEqualTo("BLOB"); }
@Test public void drop_columns_on_oracle() { assertThat(new DropColumnsBuilder(new Oracle(), "issues", "date_in_ms", "name").build()) .containsOnly("ALTER TABLE issues SET UNUSED (date_in_ms, name)"); }
@Test public void executes_handler() throws Exception { Oracle dialect = new Oracle(); when(underTest.getHandler(dialect)).thenReturn(handler); when(db.getDialect()).thenReturn(dialect); underTest.check(DatabaseCharsetChecker.State.UPGRADE); verify(handler).handle(any(Connection.class), eq(DatabaseCharsetChecker.State.UPGRADE)); }
@Test public void when_SQ_is_connected_to_Oracle_an_ISE_should_NOT_be_thrown() { when(database.getDialect()).thenReturn(new Oracle()); underTest.start(); }
@Test public void add_columns_on_oracle() { assertThat(createSampleBuilder(new Oracle()).build()) .isEqualTo("ALTER TABLE issues ADD (date_in_ms NUMBER (38) NULL, name VARCHAR2 (10 CHAR) NOT NULL, col_with_default NUMBER(1) DEFAULT 0 NOT NULL, varchar_col_with_default VARCHAR2 (3 CHAR) DEFAULT 'foo' NOT NULL)"); }
@Test public void start_runs_MigrationEngine_on_Oracle_if_fresh_install() { start_runs_MigrationEngine_for_dialect_if_fresh_install(new Oracle()); }
@Test public void rename_table_on_oracle_when_auto_generated_id_is_false() { verifySqlWhenAutoGeneratedIdIsFalse(new Oracle(), "RENAME foo TO bar"); }
@Test public void rename_table_on_oracle() { verifySql(new Oracle(), "DROP TRIGGER foo_idt", "RENAME foo TO bar", "RENAME foo_seq TO bar_seq", "CREATE OR REPLACE TRIGGER bar_idt BEFORE INSERT ON bar FOR EACH ROW BEGIN IF :new.id IS null THEN SELECT bar_seq.nextval INTO :new.id FROM dual; END IF; END;"); }
@Test public void when_SQ_is_connected_to_Postgres_an_ISE_should_NOT_be_thrown() { when(database.getDialect()).thenReturn(new Oracle()); underTest.start(); } }
@Test public void throws_ISE_if_handler_fails() throws Exception { Oracle dialect = new Oracle(); when(underTest.getHandler(dialect)).thenReturn(handler); when(db.getDialect()).thenReturn(dialect); doThrow(new SQLException("failure")).when(handler).handle(any(Connection.class), any(DatabaseCharsetChecker.State.class)); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("failure"); underTest.check(DatabaseCharsetChecker.State.UPGRADE); }
@Test public void drop_columns_on_oracle() { assertThat(new DropTableBuilder(new Oracle(), "issues") .build()).containsExactly( "BEGIN\n" + "EXECUTE IMMEDIATE 'DROP SEQUENCE issues_seq';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" + " IF SQLCODE != -2289 THEN\n" + " RAISE;\n" + " END IF;\n" + "END;", "BEGIN\n" + "EXECUTE IMMEDIATE 'DROP TRIGGER issues_idt';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" + " IF SQLCODE != -4080 THEN\n" + " RAISE;\n" + " END IF;\n" + "END;", "BEGIN\n" + "EXECUTE IMMEDIATE 'DROP TABLE issues';\n" + "EXCEPTION\n" + "WHEN OTHERS THEN\n" + " IF SQLCODE != -942 THEN\n" + " RAISE;\n" + " END IF;\n" + "END;"); }
@Test public void getHandler_returns_OracleCharsetHandler_if_oracle() { assertThat(underTest.getHandler(new Oracle())).isInstanceOf(OracleCharsetHandler.class); }