1 package liquibase.change.core;
2
3 import liquibase.change.AbstractChangeTest;
4 import liquibase.database.Database;
5 import liquibase.database.core.FirebirdDatabase;
6 import liquibase.database.core.MockDatabase;
7 import liquibase.database.core.SQLiteDatabase;
8 import liquibase.statement.SqlStatement;
9 import liquibase.statement.core.SetNullableStatement;
10 import static org.junit.Assert.*;
11 import org.junit.Test;
12
13
14
15
16 public class DropNotNullConstraintChangeTest extends AbstractChangeTest {
17
18 @Override
19 @Test
20 public void getRefactoringName() throws Exception {
21 assertEquals("Drop Not-Null Constraint", new DropNotNullConstraintChange().getChangeMetaData().getDescription());
22 }
23
24 @Override
25 @Test
26 public void generateStatement() throws Exception {
27 DropNotNullConstraintChange change = new DropNotNullConstraintChange();
28 change.setSchemaName("SCHEMA_NAME");
29 change.setTableName("TABLE_NAME");
30 change.setColumnName("COL_HERE");
31 change.setColumnDataType("varchar(200)");
32
33 SqlStatement[] sqlStatements = change.generateStatements(new MockDatabase());
34 assertEquals(1, sqlStatements.length);
35 assertTrue(sqlStatements[0] instanceof SetNullableStatement);
36 assertEquals("SCHEMA_NAME", ((SetNullableStatement) sqlStatements[0]).getSchemaName());
37 assertEquals("TABLE_NAME", ((SetNullableStatement) sqlStatements[0]).getTableName());
38 assertEquals("COL_HERE", ((SetNullableStatement) sqlStatements[0]).getColumnName());
39 assertEquals("varchar(200)", ((SetNullableStatement) sqlStatements[0]).getColumnDataType());
40 assertTrue(((SetNullableStatement) sqlStatements[0]).isNullable());
41 }
42
43 @Override
44 @Test
45 public void getConfirmationMessage() throws Exception {
46 DropNotNullConstraintChange change = new DropNotNullConstraintChange();
47 change.setTableName("TABLE_NAME");
48 change.setColumnName("COL_HERE");
49 assertEquals("Null constraint dropped from TABLE_NAME.COL_HERE", change.getConfirmationMessage());
50
51 }
52
53 @Override
54 protected boolean changeIsUnsupported(Database database) {
55 return database instanceof FirebirdDatabase
56 || database instanceof SQLiteDatabase;
57 }
58
59 }