1 package liquibase.change.core;
2
3 import liquibase.change.AbstractChangeTest;
4 import liquibase.database.Database;
5 import liquibase.database.core.MockDatabase;
6 import liquibase.database.core.SQLiteDatabase;
7 import liquibase.statement.SqlStatement;
8 import liquibase.statement.core.DropPrimaryKeyStatement;
9 import static org.junit.Assert.*;
10 import org.junit.Test;
11
12 public class DropPrimaryKeyChangeTest extends AbstractChangeTest {
13 @Override
14 @Test
15 public void getRefactoringName() throws Exception {
16 assertEquals("Drop Primary Key", new DropPrimaryKeyChange().getChangeMetaData().getDescription());
17 }
18
19 @Override
20 @Test
21 public void generateStatement() throws Exception {
22 DropPrimaryKeyChange change = new DropPrimaryKeyChange();
23 change.setSchemaName("SCHEMA_NAME");
24 change.setTableName("TABLE_NAME");
25 change.setConstraintName("PK_NAME");
26
27 SqlStatement[] sqlStatements = change.generateStatements(new MockDatabase());
28 assertEquals(1, sqlStatements.length);
29 assertTrue(sqlStatements[0] instanceof DropPrimaryKeyStatement);
30 assertEquals("SCHEMA_NAME", ((DropPrimaryKeyStatement) sqlStatements[0]).getSchemaName());
31 assertEquals("TABLE_NAME", ((DropPrimaryKeyStatement) sqlStatements[0]).getTableName());
32 assertEquals("PK_NAME", ((DropPrimaryKeyStatement) sqlStatements[0]).getConstraintName());
33 }
34
35 @Override
36 @Test
37 public void getConfirmationMessage() throws Exception {
38 DropPrimaryKeyChange change = new DropPrimaryKeyChange();
39 change.setSchemaName("SCHEMA_NAME");
40 change.setTableName("TABLE_NAME");
41 change.setConstraintName("PK_NAME");
42 assertEquals("Primary key dropped from TABLE_NAME", change.getConfirmationMessage());
43
44 }
45
46 @Override
47 protected boolean changeIsUnsupported(Database database) {
48 return database instanceof SQLiteDatabase;
49 }
50 }