package liquibase.sqlgenerator.core; import static org.junit.Assert.assertEquals; import liquibase.change.ColumnConfig; import liquibase.database.core.PostgresDatabase; import liquibase.sql.Sql; import liquibase.statement.SequenceNextValueFunction; import liquibase.statement.core.InsertStatement; import org.junit.Test; public class InsertOrUpdateGeneratorPostgresTest { private static final String CATALOG_NAME = "mycatalog"; private static final String SCHEMA_NAME = "myschema"; private static final String TABLE_NAME = "mytable"; private static final String SEQUENCE_NAME = "my_sequence"; @Test public void testInsertSequenceValWithSchema(){ PostgresDatabase postgresDatabase = new PostgresDatabase(); InsertGenerator generator = new InsertGenerator(); InsertStatement statement = new InsertStatement(CATALOG_NAME, SCHEMA_NAME, TABLE_NAME); ColumnConfig columnConfig = new ColumnConfig(); columnConfig.setValueSequenceNext(new SequenceNextValueFunction(SCHEMA_NAME+'.'+SEQUENCE_NAME)); columnConfig.setName("col3"); statement.addColumn(columnConfig); Sql[] sql = generator.generateSql( statement, postgresDatabase, null); String theSql = sql[0].toSql(); assertEquals(String.format("INSERT INTO %s.%s (col3) VALUES (nextval('%s.%s'))",SCHEMA_NAME,TABLE_NAME,SCHEMA_NAME,SEQUENCE_NAME) ,theSql); } }