package liquibase.change.core; import liquibase.change.AbstractChangeTest; import liquibase.database.Database; import liquibase.database.core.SQLiteDatabase; import static org.junit.Assert.*; import org.junit.Test; public class AddPrimaryKeyChangeTest extends AbstractChangeTest { @Override @Test public void getRefactoringName() throws Exception { assertEquals("Add Primary Key", new AddPrimaryKeyChange().getChangeMetaData().getDescription()); } @Override @Test public void generateStatement() throws Exception { // new DatabaseTestTemplate().testOnAllDatabases(new DatabaseTest() { // public void performTest(Database database) throws Exception { // AddPrimaryKeyChange change = new AddPrimaryKeyChange(); // change.setSchemaName("SCHEMA_NAME"); // change.setTableName("TABLE_NAME"); // change.setColumnNames("COL_HERE"); // change.setConstraintName("PK_NAME"); // change.setTablespace("TABLESPACE_NAME"); // // SqlStatement[] sqlStatements = change.generateStatements(database); // if (database instanceof DB2Database) { // assertEquals(2, sqlStatements.length); // // assertTrue(sqlStatements[1] instanceof ReorganizeTableStatement); // assertEquals("SCHEMA_NAME", ((ReorganizeTableStatement) sqlStatements[1]).getSchemaName()); // assertEquals("TABLE_NAME", ((ReorganizeTableStatement) sqlStatements[1]).getTableName()); // } else { // assertEquals(1, sqlStatements.length); // } // assertTrue(sqlStatements[0] instanceof AddPrimaryKeyStatement); // // assertEquals("SCHEMA_NAME", ((AddPrimaryKeyStatement) sqlStatements[0]).getSchemaName()); // assertEquals("TABLE_NAME", ((AddPrimaryKeyStatement) sqlStatements[0]).getTableName()); // assertEquals("COL_HERE", ((AddPrimaryKeyStatement) sqlStatements[0]).getColumnNames()); // assertEquals("PK_NAME", ((AddPrimaryKeyStatement) sqlStatements[0]).getConstraintName()); // assertEquals("TABLESPACE_NAME", ((AddPrimaryKeyStatement) sqlStatements[0]).getTablespace()); // // } // }); } @Override @Test public void getConfirmationMessage() throws Exception { AddPrimaryKeyChange change = new AddPrimaryKeyChange(); change.setTableName("TABLE_NAME"); change.setColumnNames("COL_HERE"); assertEquals("Primary key added to TABLE_NAME (COL_HERE)", change.getConfirmationMessage()); } @Override protected boolean changeIsUnsupported(Database database) { return database instanceof SQLiteDatabase; } }