@Test public void fail_when_table_is_null() { expectedException.expect(NullPointerException.class); new DropTableBuilder(new PostgreSql(), null); } }
@Test public void generateSqlType_for_PostgreSql() { assertThat(underTest.generateSqlType(new PostgreSql())).isEqualTo("BYTEA"); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute(singletonList("ALTER TABLE ce_activity DROP COLUMN snapshot_id")); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute(singletonList("ALTER TABLE project_measures DROP COLUMN snapshot_id")); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute(singletonList("ALTER TABLE project_measures DROP COLUMN project_id")); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute( singletonList("ALTER TABLE projects DROP COLUMN root_id, DROP COLUMN copy_resource_id, DROP COLUMN person_id")); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute( singletonList( "ALTER TABLE snapshots DROP COLUMN parent_snapshot_id, DROP COLUMN scope, DROP COLUMN qualifier, DROP COLUMN root_snapshot_id, DROP COLUMN path, DROP COLUMN depth, DROP COLUMN root_component_uuid")); }
@Test public void drop_tables_on_postgresql() { assertThat(new DropTableBuilder(new PostgreSql(), "issues") .build()).containsOnly("drop table if exists issues"); }
@Test public void drop_columns_on_postgresql() { assertThat(new DropColumnsBuilder(new PostgreSql(), "issues", "date_in_ms", "name").build()) .containsOnly("ALTER TABLE issues DROP COLUMN date_in_ms, DROP COLUMN name"); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute( singletonList("ALTER TABLE snapshots DROP COLUMN project_id, DROP COLUMN root_project_id")); }
@Test public void verify_generated_sql_on_postgresql() throws SQLException { when(database.getDialect()).thenReturn(new PostgreSql()); DdlChange.Context context = mock(DdlChange.Context.class); underTest.execute(context); verify(context).execute(singletonList("ALTER TABLE users DROP COLUMN remember_token, DROP COLUMN remember_token_expires_at")); } }
@Test public void add_columns_on_postgresql() { assertThat(createSampleBuilder(new PostgreSql()).build()) .isEqualTo("ALTER TABLE issues ADD COLUMN date_in_ms BIGINT NULL, ADD COLUMN name VARCHAR (10) NOT NULL, ADD COLUMN col_with_default BOOLEAN DEFAULT false NOT NULL, ADD COLUMN varchar_col_with_default VARCHAR (3) DEFAULT 'foo' NOT NULL"); }
@Test public void generate_sql_on_postgresql() { when(database.getDialect()).thenReturn(new PostgreSql()); assertThat(underTest.generateSql()) .containsOnly( "ALTER TABLE project_measures DROP COLUMN rules_category_id, DROP COLUMN tendency, DROP COLUMN measure_date, DROP COLUMN url, DROP COLUMN rule_priority, DROP COLUMN characteristic_id, DROP COLUMN rule_id"); }
@Test public void update_not_nullable_column_on_postgres() { assertThat(createNotNullableBuilder(new PostgreSql()).build()) .containsOnly("ALTER TABLE issues ALTER COLUMN name TYPE VARCHAR (10), ALTER COLUMN name SET NOT NULL"); }
@Test public void generate_sql_type() { TinyIntColumnDef def = new TinyIntColumnDef.Builder() .setColumnName("foo") .setIsNullable(true) .build(); assertThat(def.generateSqlType(new H2())).isEqualTo("TINYINT"); assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("SMALLINT"); assertThat(def.generateSqlType(new MsSql())).isEqualTo("TINYINT"); assertThat(def.generateSqlType(new MySql())).isEqualTo("TINYINT(2)"); assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER(3)"); }
@Test public void generate_sql_type() { TimestampColumnDef def = newTimestampColumnDefBuilder() .setColumnName("created_at") .build(); assertThat(def.generateSqlType(new H2())).isEqualTo("TIMESTAMP"); assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("TIMESTAMP"); assertThat(def.generateSqlType(new MsSql())).isEqualTo("DATETIME"); assertThat(def.generateSqlType(new MySql())).isEqualTo("DATETIME"); assertThat(def.generateSqlType(new Oracle())).isEqualTo("TIMESTAMP (6)"); }
@Test public void generate_sql_type() { BigIntegerColumnDef def = new BigIntegerColumnDef.Builder() .setColumnName("issues") .setIsNullable(true) .build(); assertThat(def.generateSqlType(new H2())).isEqualTo("BIGINT"); assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("BIGINT"); assertThat(def.generateSqlType(new MsSql())).isEqualTo("BIGINT"); assertThat(def.generateSqlType(new MySql())).isEqualTo("BIGINT"); assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER (38)"); }
@Test public void generate_sql_type() { BooleanColumnDef def = new BooleanColumnDef.Builder() .setColumnName("enabled") .setIsNullable(true) .build(); assertThat(def.generateSqlType(new H2())).isEqualTo("BOOLEAN"); assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("BOOLEAN"); assertThat(def.generateSqlType(new MsSql())).isEqualTo("BIT"); assertThat(def.generateSqlType(new MySql())).isEqualTo("TINYINT(1)"); assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER(1)"); }
@Test public void generate_sql_type() { VarcharColumnDef def = new VarcharColumnDef.Builder() .setColumnName("issues") .setLimit(10) .setIsNullable(true) .build(); assertThat(def.generateSqlType(new H2())).isEqualTo("VARCHAR (10)"); assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("VARCHAR (10)"); assertThat(def.generateSqlType(new MySql())).isEqualTo("VARCHAR (10)"); assertThat(def.generateSqlType(new MsSql())).isEqualTo("NVARCHAR (10)"); assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR2 (10 CHAR)"); }
@Test public void index_length_is_not_specified_on_big_varchar_columns_if_not_mysql() { Arrays.<Dialect>asList(new H2(), new MsSql(), new PostgreSql(), new Oracle()) .forEach(dialect -> verifySql(new CreateIndexBuilder(dialect) .setTable("issues") .setName("issues_key") .addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(4000).build()), "CREATE INDEX issues_key ON issues (kee)")); }