@Before public void setUp() { // Some databases have unique names of indexes, so table name is not declared // when dropping an index ("drop index <index name>"). Because of that MySQL is // used in the test so that the table name can also be verified when(db.getDialect()).thenReturn(new MySql()); }
@Before public void setUp() { // Some databases have unique names of indexes, so table name is not declared // when dropping an index ("drop index <index name>"). Because of that MySQL is // used in the test so that the table name can also be verified when(db.getDialect()).thenReturn(new MySql()); }
@Before public void setUp() { // Some databases have unique names of indexes, so table name is not declared // when dropping an index ("drop index <index name>"). Because of that MySQL is // used in the test so that the table name can also be verified when(db.getDialect()).thenReturn(new MySql()); }
@Test public void generateSqlType_for_MySql() { assertThat(underTest.generateSqlType(new MySql())).isEqualTo("LONGBLOB"); }
@Before public void setUp() { // Some databases have unique names of indexes, so table name is not declared // when dropping an index ("drop index <index name>"). Because of that MySQL is // used in the test so that the table name can also be verified when(db.getDialect()).thenReturn(new MySql()); }
@Before public void setUp() { // Some databases have unique names of indexes, so table name is not declared // when dropping an index ("drop index <index name>"). Because of that MySQL is // used in the test so that the table name can also be verified when(db.getDialect()).thenReturn(new MySql()); }
@Test public void drop_tables_on_mysql() { assertThat(new DropTableBuilder(new MySql(), "issues") .build()).containsOnly("drop table if exists issues"); }
@Test public void drop_columns_on_mysql() { assertThat(new DropColumnsBuilder(new MySql(), "issues", "date_in_ms", "name").build()) .containsOnly("ALTER TABLE issues DROP COLUMN date_in_ms, DROP COLUMN name"); }
@Test public void add_columns_on_mysql() { assertThat(createSampleBuilder(new MySql()).build()) .isEqualTo("ALTER TABLE issues ADD (date_in_ms BIGINT NULL, name VARCHAR (10) NOT NULL, col_with_default TINYINT(1) DEFAULT false NOT NULL, varchar_col_with_default VARCHAR (3) DEFAULT 'foo' NOT NULL)"); }
@Test public void update_columns_on_mysql() { assertThat(createSampleBuilder(new MySql()).build()) .containsOnly("ALTER TABLE issues MODIFY COLUMN value DECIMAL (30,20) NULL, MODIFY COLUMN name VARCHAR (10) NULL"); }
@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() { 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 when_SQ_is_connected_to_MySql_an_ISE_should_be_thrown() { when(database.getDialect()).thenReturn(new MySql()); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("MySQL is not supported for Data Center Edition. Please connect to a supported database: Oracle, PostgreSQL, Microsoft SQL Server."); underTest.start(); }
@Test public void update_not_nullable_column_on_mysql() { assertThat(createNotNullableBuilder(new MySql()).build()) .containsOnly("ALTER TABLE issues MODIFY COLUMN name VARCHAR (10) NOT NULL"); }
@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() { 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() { 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 return_if_production_database_or_not() { init(); when(dbClient.getDatabase().getDialect()).thenReturn(new MySql()); assertJson(call()).isSimilarTo("{" + " \"productionDatabase\": true" + "}"); }
@Test public void index_length_is_limited_to_255_on_big_varchar_columns_if_mysql() { verifySql(new CreateIndexBuilder(new MySql()) .setTable("issues") .setName("issues_key") .addColumn(newVarcharColumnDefBuilder().setColumnName("kee").setLimit(4000).build()), "CREATE INDEX issues_key ON issues (kee(255))"); }
@Test public void drop_index_in_table() { verifySql(new H2(), "DROP INDEX IF EXISTS issues_key"); verifySql(new MsSql(), "DROP INDEX issues_key ON issues"); verifySql(new MySql(), "DROP INDEX issues_key ON issues"); verifySql(new Oracle(), "DROP INDEX issues_key"); verifySql(new PostgreSql(), "DROP INDEX IF EXISTS issues_key"); }