package liquibase.change.core; import liquibase.change.AbstractChangeTest; import liquibase.database.Database; import liquibase.database.core.CacheDatabase; import liquibase.database.core.DB2Database; import liquibase.database.core.MockDatabase; import liquibase.database.core.SQLiteDatabase; import liquibase.statement.SqlStatement; import liquibase.statement.core.RenameColumnStatement; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; /** * Tests for {@link RenameColumnChange} */ public class RenameColumnChangeTest extends AbstractChangeTest { RenameColumnChange refactoring; @Before public void setUp() throws Exception { refactoring = new RenameColumnChange(); refactoring.setSchemaName("SCHEMA_NAME"); refactoring.setTableName("TABLE_NAME"); refactoring.setOldColumnName("oldColName"); refactoring.setNewColumnName("newColName"); } @Override @Test public void getRefactoringName() throws Exception { assertEquals("Rename Column", refactoring.getChangeMetaData().getDescription()); } @Override @Test public void generateStatement() throws Exception { SqlStatement[] sqlStatements = refactoring.generateStatements(new MockDatabase()); assertEquals(1, sqlStatements.length); assertTrue(sqlStatements[0] instanceof RenameColumnStatement); assertEquals("SCHEMA_NAME", ((RenameColumnStatement) sqlStatements[0]).getSchemaName()); assertEquals("TABLE_NAME", ((RenameColumnStatement) sqlStatements[0]).getTableName()); assertEquals("oldColName", ((RenameColumnStatement) sqlStatements[0]).getOldColumnName()); assertEquals("newColName", ((RenameColumnStatement) sqlStatements[0]).getNewColumnName()); } @Override @Test public void getConfirmationMessage() throws Exception { assertEquals("Column TABLE_NAME.oldColName renamed to newColName", refactoring.getConfirmationMessage()); } @Override protected boolean changeIsUnsupported(Database database) { return database instanceof DB2Database || database instanceof CacheDatabase || database instanceof SQLiteDatabase; } }