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.ChangeColumnOperationDescriptor;
import junit.framework.TestCase;
public class ChangeColumnExecutorTest extends TestCase {
public void testCreateSql() {
String tableName = "tableName";
String oldColumnName = "oldColumnName";
List<IColumn> columns = new ArrayList<IColumn>();
Column column = new Column();
column.setLength(255);
column.setType(TypeEnum.VARCHAR);
column.setName("ola_varchar_255");
column.setNullable(false);
columns.add(column);
ChangeColumnOperationDescriptor operation = new ChangeColumnOperationDescriptor(tableName, column, oldColumnName);
ChangeColumnExecutor executor = new ChangeColumnExecutor(null);
System.out.println(executor.createSql(operation));
assertEquals("ALTER TABLE \"tableName\" CHANGE oldColumnName ola_varchar_255 VARCHAR (255) NOT NULL;", executor.createSql(operation));
}
public void testSetValueText() {
String tableName = "tableName";
String oldColumnName = "oldColumnName";
List<IColumn> columns = new ArrayList<IColumn>();
Column column = new Column();
column.setLength(255);
column.setType(TypeEnum.VARCHAR);
column.setName("ola_varchar_255");
column.setNullable(false);
column.setValueToSet("Kamil");
columns.add(column);
ChangeColumnOperationDescriptor operation = new ChangeColumnOperationDescriptor(tableName, column, oldColumnName);
ChangeColumnExecutor executor = new ChangeColumnExecutor(null);
System.out.println(executor.createSql(operation));
assertEquals("ALTER TABLE \"tableName\" CHANGE oldColumnName ola_varchar_255 VARCHAR (255) NOT NULL;UPDATE \"tableName\" SET ola_varchar_255='Kamil' ;", executor.createSql(operation));
}
public void testSetValueBinary() {
String tableName = "tableName";
String oldColumnName = "oldColumnName";
List<IColumn> columns = new ArrayList<IColumn>();
Column column = new Column();
column.setLength(255);
column.setType(TypeEnum.BINARY);
column.setName("ola_varchar_255");
column.setNullable(false);
column.setValueToSet("01010101");
columns.add(column);
ChangeColumnOperationDescriptor operation = new ChangeColumnOperationDescriptor(tableName, column, oldColumnName);
ChangeColumnExecutor executor = new ChangeColumnExecutor(null);
System.out.println(executor.createSql(operation));
assertEquals("ALTER TABLE \"tableName\" CHANGE oldColumnName ola_varchar_255 BINARY NOT NULL;UPDATE \"tableName\" SET ola_varchar_255=B'01010101' ;", executor.createSql(operation).trim());
}
public void testSetValueInt() {
String tableName = "tableName";
String oldColumnName = "oldColumnName";
List<IColumn> columns = new ArrayList<IColumn>();
Column column = new Column();
column.setLength(255);
column.setType(TypeEnum.INT);
column.setName("ola_varchar_255");
column.setNullable(false);
column.setValueToSet("69");
columns.add(column);
ChangeColumnOperationDescriptor operation = new ChangeColumnOperationDescriptor(tableName, column, oldColumnName);
ChangeColumnExecutor executor = new ChangeColumnExecutor(null);
System.out.println(executor.createSql(operation));
assertEquals("ALTER TABLE \"tableName\" CHANGE oldColumnName ola_varchar_255 INT NOT NULL;UPDATE \"tableName\" SET ola_varchar_255=69 ;", executor.createSql(operation).trim());
}
}