package liquibase.sqlgenerator.core;
import static org.junit.Assert.assertEquals;
import java.math.BigInteger;
import liquibase.database.Database;
import liquibase.database.core.DB2Database;
import liquibase.database.core.OracleDatabase;
import liquibase.database.core.PostgresDatabase;
import liquibase.sql.Sql;
import liquibase.sqlgenerator.AbstractSqlGeneratorTest;
import liquibase.statement.core.AlterSequenceStatement;
import liquibase.test.TestContext;
import org.junit.Test;
public class AlterSequenceGeneratorTest extends AbstractSqlGeneratorTest<AlterSequenceStatement> {
protected static final String SEQUENCE_NAME = "SEQUENCE_NAME";
protected static final String CATALOG_NAME = "CATALOG_NAME";
protected static final String SCHEMA_NAME = "SCHEMA_NAME";
public AlterSequenceGeneratorTest() throws Exception {
super(new AlterSequenceGenerator());
}
@Test
public void testAlterSequenceDatabase() throws Exception {
for (Database database : TestContext.getInstance().getAllDatabases()) {
if (database instanceof OracleDatabase) {
AlterSequenceStatement statement = new AlterSequenceStatement(CATALOG_NAME, SCHEMA_NAME, SEQUENCE_NAME);
statement.setCacheSize(BigInteger.valueOf(3000L));
Sql[] generatedSql = this.generatorUnderTest.generateSql(statement, database, null);
assertEquals("ALTER SEQUENCE CATALOG_NAME.SEQUENCE_NAME CACHE 3000", generatedSql[0].toSql());
}
}
}
@Override
protected AlterSequenceStatement createSampleSqlStatement() {
AlterSequenceStatement statement = new AlterSequenceStatement(CATALOG_NAME, SCHEMA_NAME, SEQUENCE_NAME);
return statement;
}
@Override
protected boolean shouldBeImplementation(Database database) {
return database.supportsSequences();
}
}