View Javadoc

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   * Tests for {@link DropNotNullConstraintChange}
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  }