package liquibase.sqlgenerator.core;
import static org.junit.Assert.*;
import liquibase.database.Database;
import liquibase.database.core.MSSQLDatabase;
import liquibase.sql.Sql;
import liquibase.statement.core.DeleteStatement;
import org.junit.Test;
public class DeleteGeneratorTest {
@Test
public void testGenerateSql() {
// given
DeleteStatement statement = new DeleteStatement(null, null, "DATABASECHANGELOG");
statement.setWhere(":name = :value AND :name = :value AND :name = :value");
statement.addWhereColumnName("ID");
statement.addWhereColumnName("AUTHOR");
statement.addWhereColumnName("FILENAME");
statement.addWhereParameter("1");
statement.addWhereParameter("a");
statement.addWhereParameter("server_principals/BUILTIN$Administrators.xml");
Database database = new MSSQLDatabase();
DeleteGenerator generator = new DeleteGenerator();
// when
Sql[] sqls = generator.generateSql(statement, database, null);
// then
assertEquals(
"DELETE FROM [DATABASECHANGELOG] " +
"WHERE [ID] = '1' " +
"AND [AUTHOR] = 'a' " +
"AND [FILENAME] = 'server_principals/BUILTIN$Administrators.xml'",
sqls[0].toSql());
}
}