package liquibase.change.core; import liquibase.change.AbstractChangeTest; import liquibase.change.ColumnConfig; import liquibase.database.core.MockDatabase; import liquibase.statement.SqlStatement; import liquibase.statement.core.InsertStatement; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; /** * Tests for {@link InsertDataChange} */ public class InsertDataChangeTest extends AbstractChangeTest { InsertDataChange refactoring; @Before public void setUp() throws Exception { refactoring = new InsertDataChange(); refactoring.setTableName("TABLE_NAME"); ColumnConfig col1 = new ColumnConfig(); col1.setName("id"); col1.setValueNumeric("123"); ColumnConfig col2 = new ColumnConfig(); col2.setName("name"); col2.setValue("Andrew"); ColumnConfig col3 = new ColumnConfig(); col3.setName("age"); col3.setValueNumeric("21"); ColumnConfig col4 = new ColumnConfig(); col4.setName("height"); col4.setValueNumeric("1.78"); refactoring.addColumn(col1); refactoring.addColumn(col2); refactoring.addColumn(col3); refactoring.addColumn(col4); } @Override @Test public void getRefactoringName() throws Exception { assertEquals("Insert Row", refactoring.getChangeMetaData().getDescription()); } @Override @Test public void generateStatement() throws Exception { SqlStatement[] sqlStatements = refactoring.generateStatements(new MockDatabase()); assertEquals(1, sqlStatements.length); assertTrue(sqlStatements[0] instanceof InsertStatement); assertEquals("123", ((InsertStatement) sqlStatements[0]).getColumnValue("id").toString()); assertEquals("Andrew", ((InsertStatement) sqlStatements[0]).getColumnValue("name").toString()); assertEquals("21", ((InsertStatement) sqlStatements[0]).getColumnValue("age").toString()); assertEquals("1.78", ((InsertStatement) sqlStatements[0]).getColumnValue("height").toString()); } @Override @Test public void getConfirmationMessage() throws Exception { assertEquals("New row inserted into TABLE_NAME", refactoring.getConfirmationMessage()); } }