package liquibase.ext.ora.splittable;
import static org.junit.Assert.assertEquals;
import liquibase.change.ChangeFactory;
import liquibase.change.ChangeMetaData;
import liquibase.database.core.OracleDatabase;
import liquibase.ext.ora.testing.BaseTestCase;
import liquibase.statement.SqlStatement;
import org.junit.Before;
import org.junit.Test;
public class SplitTableChangeTest extends BaseTestCase {
@Before
public void setUp() throws Exception {
changeLogFile = "liquibase/ext/ora/splittable/changelog.test.xml";
connectToDB();
cleanDB();
}
@Test
public void test() throws Exception {
if (connection == null) {
return;
}
liquiBase.update((String) null);
}
@Test
public void generateStatement() {
SplitTableChange change = new SplitTableChange();
change.setSplitTableSchemaName("SPLIT_TABLE_SCHEMA_NAME");
change.setSplitTableName("SPLIT_TABLE_NAME");
change.setNewTableSchemaName("NEW_TABLE_SCHEMA_NAME");
change.setNewTableName("NEW_TABLE_NAME");
change.setColumnNameList("FIRST,SECOND");
change.setPrimaryKeyColumnName("FIRST");
SqlStatement[] statements = change.generateStatements(new OracleDatabase());
assertEquals(1, statements.length);
SplitTableStatement statement = (SplitTableStatement) statements[0];
assertEquals("SPLIT_TABLE_SCHEMA_NAME", statement.getSplitTableSchemaName());
assertEquals("SPLIT_TABLE_NAME", statement.getSplitTableName());
assertEquals("NEW_TABLE_SCHEMA_NAME", statement.getNewTableSchemaName());
assertEquals("NEW_TABLE_NAME", statement.getNewTableName());
assertEquals("FIRST,SECOND", statement.getColumnNameList());
assertEquals("FIRST", statement.getPrimaryKeyColumnName());
}
@Test
public void getConfirmationMessage() {
SplitTableChange change = new SplitTableChange();
change.setSplitTableName("SPLIT_TABLE_NAME");
change.setNewTableName("NEW_TABLE_NAME");
assertEquals(change.getSplitTableName() + " splitted. Created new table " + change.getNewTableName(), change
.getConfirmationMessage());
}
@Test
public void getChangeMetaData() {
SplitTableChange change = new SplitTableChange();
assertEquals("splitTable", ChangeFactory.getInstance().getChangeMetaData(change).getName());
assertEquals("Split table", ChangeFactory.getInstance().getChangeMetaData(change).getDescription());
assertEquals(ChangeMetaData.PRIORITY_DEFAULT, ChangeFactory.getInstance().getChangeMetaData(change).getPriority());
}
}