package dbmigrate.executor;
import java.util.ArrayList;
import java.util.List;
import dbmigrate.model.db.Column;
import dbmigrate.model.db.IColumn;
import dbmigrate.model.db.TypeEnum;
import dbmigrate.model.operation.AddColumnOperationDescriptor;
import dbmigrate.model.operation.MergeColumnOperationDescriptor;
import junit.framework.TestCase;
public class MergeColumnExecutorTest extends TestCase {
private MergeColumnOperationDescriptor operation;
private AddColumnOperationDescriptor addOperation;
private static final String DEFAULT_TEXT = "ala123";
private static final String DEFAULT_INT = "123";
private static final String DEFAULT_BYTE = "1010101010";
private static final String DEFAULT_BOOLEAN = "TRUE";
private static final String DEFAULT_DATE = "2011-12-01 18:17:03";
public void setUp() {
String tableName = "ala";
List<IColumn> columns = new ArrayList<IColumn>();
Column column1 = new Column();
column1.setLength(127);
column1.setName("ola1");
column1.setNullable(false);
columns.add(column1);
Column column2 = new Column();
column2.setLength(127);
column2.setName("ola2");
column2.setNullable(false);
columns.add(column2);
Column column = new Column();
column.setLength(255);
column.setName("ola");
column.setNullable(false);
addOperation = new AddColumnOperationDescriptor(tableName, column);
operation = new MergeColumnOperationDescriptor(column1, column2, tableName, ",", addOperation);
}
public void tuneColumn(TypeEnum type, String defaultValue) {
addOperation.getColumn().setDefault(defaultValue);
addOperation.getColumn().setType(type);
}
public void testCreateSqlWithDefaultText() {
tuneColumn(TypeEnum.TEXT, DEFAULT_TEXT);
MergeColumnExecutor executor = new MergeColumnExecutor(null);
String sql = executor.createSql(operation).trim();
System.out.println(sql);
assertEquals("UPDATE \"ala\" SET ala = ola1 || ',' || ola2", sql);
}
}