package liquibase.sqlgenerator.core; import java.util.SortedSet; import java.util.TreeSet; import liquibase.database.Database; import liquibase.database.core.PostgresDatabase; import liquibase.sql.Sql; import liquibase.sqlgenerator.SqlGenerator; import liquibase.sqlgenerator.SqlGeneratorChain; import liquibase.statement.core.DropIndexStatement; import org.junit.Ignore; import org.junit.Test; import static junit.framework.Assert.assertEquals; public class DropIndexGeneratorTest { // @Test // public void execute_defaultSchema() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new DropIndexStatement(IDX_NAME, null, TABLE_NAME)) { // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNotNull(snapshot.getIndex(IDX_NAME)); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getIndex(IDX_NAME)); // } // // }); // } // // //todo: issues with schemas on some databases //// @Test //// public void execute_altSchema() throws Exception { //// new DatabaseTestTemplate().testOnAvailableDatabases( //// new SqlStatementDatabaseTest(TestContext.ALT_SCHEMA, new DropIndexStatement(ALT_IDX_NAME, TestContext.ALT_SCHEMA, TABLE_NAME)) { //// //// protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { //// //todo: how do we assert indexes within a schema snapshot? ////// assertNotNull(snapshot.getIndex(ALT_IDX_NAME)); //// } //// //// protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { //// //todo: how do we assert indexes within a schema snapshot? ////// assertNull(snapshot.getIndex(ALT_IDX_NAME)); //// } //// //// }); //// } @Test public void shouldDropIndexInPostgreSQL() throws Exception { DropIndexGenerator dropIndexGenerator = new DropIndexGenerator(); DropIndexStatement statement = new DropIndexStatement("indexName", "defaultCatalog", "defaultSchema", "aTable", null); Database database = new PostgresDatabase(); SortedSet<SqlGenerator> sqlGenerators = new TreeSet<SqlGenerator>(); SqlGeneratorChain sqlGenerationChain = new SqlGeneratorChain(sqlGenerators); Sql[] sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain); assertEquals("DROP INDEX \"defaultSchema\".\"indexName\"", sqls[0].toSql()); statement = new DropIndexStatement("index_name", "default_catalog", "default_schema", "a_table", null); sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain); assertEquals("DROP INDEX default_schema.index_name", sqls[0].toSql()); statement = new DropIndexStatement("index_name", null, null, "a_table", null); sqls = dropIndexGenerator.generateSql(statement, database, sqlGenerationChain); assertEquals("DROP INDEX index_name", sqls[0].toSql()); } }