package liquibase.change.core; import liquibase.change.AbstractChangeTest; import liquibase.database.Database; import liquibase.database.core.FirebirdDatabase; import liquibase.database.core.MockDatabase; import liquibase.database.core.SQLiteDatabase; import liquibase.statement.SqlStatement; import liquibase.statement.core.SetNullableStatement; import static org.junit.Assert.*; import org.junit.Test; /** * Tests for {@link DropNotNullConstraintChange} */ public class DropNotNullConstraintChangeTest extends AbstractChangeTest { @Override @Test public void getRefactoringName() throws Exception { assertEquals("Drop Not-Null Constraint", new DropNotNullConstraintChange().getChangeMetaData().getDescription()); } @Override @Test public void generateStatement() throws Exception { DropNotNullConstraintChange change = new DropNotNullConstraintChange(); change.setSchemaName("SCHEMA_NAME"); change.setTableName("TABLE_NAME"); change.setColumnName("COL_HERE"); change.setColumnDataType("varchar(200)"); SqlStatement[] sqlStatements = change.generateStatements(new MockDatabase()); assertEquals(1, sqlStatements.length); assertTrue(sqlStatements[0] instanceof SetNullableStatement); assertEquals("SCHEMA_NAME", ((SetNullableStatement) sqlStatements[0]).getSchemaName()); assertEquals("TABLE_NAME", ((SetNullableStatement) sqlStatements[0]).getTableName()); assertEquals("COL_HERE", ((SetNullableStatement) sqlStatements[0]).getColumnName()); assertEquals("varchar(200)", ((SetNullableStatement) sqlStatements[0]).getColumnDataType()); assertTrue(((SetNullableStatement) sqlStatements[0]).isNullable()); } @Override @Test public void getConfirmationMessage() throws Exception { DropNotNullConstraintChange change = new DropNotNullConstraintChange(); change.setTableName("TABLE_NAME"); change.setColumnName("COL_HERE"); assertEquals("Null constraint dropped from TABLE_NAME.COL_HERE", change.getConfirmationMessage()); } @Override protected boolean changeIsUnsupported(Database database) { return database instanceof FirebirdDatabase || database instanceof SQLiteDatabase; } }