package liquibase.change.core; import liquibase.change.AbstractChangeTest; import liquibase.database.Database; import liquibase.database.core.*; import liquibase.statement.SqlStatement; import liquibase.statement.core.AlterSequenceStatement; import static org.junit.Assert.*; import org.junit.Test; import java.math.BigInteger; /** * Tests for {@link AlterSequenceChange} */ public class AlterSequenceChangeTest extends AbstractChangeTest { @Override @Test public void getRefactoringName() throws Exception { assertEquals("Alter Sequence", new AlterSequenceChange().getChangeMetaData().getDescription()); } @Override @Test public void generateStatement() throws Exception { AlterSequenceChange refactoring = new AlterSequenceChange(); refactoring.setSchemaName("SCHEMA_NAME"); refactoring.setSequenceName("SEQ_NAME"); refactoring.setMinValue(new BigInteger("100")); refactoring.setMaxValue(new BigInteger("1000")); refactoring.setIncrementBy(new BigInteger("50")); refactoring.setOrdered(true); SqlStatement[] sqlStatements = refactoring.generateStatements(new MockDatabase()); assertEquals(1, sqlStatements.length); assertTrue(sqlStatements[0] instanceof AlterSequenceStatement); assertEquals("SCHEMA_NAME", ((AlterSequenceStatement) sqlStatements[0]).getSchemaName()); assertEquals("SEQ_NAME", ((AlterSequenceStatement) sqlStatements[0]).getSequenceName()); assertEquals(new BigInteger("100"), ((AlterSequenceStatement) sqlStatements[0]).getMinValue()); assertEquals(new BigInteger("1000"), ((AlterSequenceStatement) sqlStatements[0]).getMaxValue()); assertEquals(new BigInteger("50"), ((AlterSequenceStatement) sqlStatements[0]).getIncrementBy()); assertEquals(true, ((AlterSequenceStatement) sqlStatements[0]).getOrdered()); } @Override @Test public void getConfirmationMessage() throws Exception { AlterSequenceChange refactoring = new AlterSequenceChange(); refactoring.setSequenceName("SEQ_NAME"); assertEquals("Sequence SEQ_NAME altered", refactoring.getConfirmationMessage()); } @Override protected boolean changeIsUnsupported(Database database) { return database instanceof SQLiteDatabase || database instanceof SybaseASADatabase || database instanceof MSSQLDatabase || database instanceof MySQLDatabase || database instanceof DerbyDatabase || database instanceof SybaseDatabase || database instanceof CacheDatabase; } }