package dbmigrate.executor; import java.sql.Connection; import java.util.Random; import dbmigrate.model.db.Column; import dbmigrate.model.db.DbConnector; import dbmigrate.model.db.Table; import dbmigrate.model.db.TypeEnum; import dbmigrate.model.operation.AddColumnOperationDescriptor; import dbmigrate.model.operation.DropColumnOperationDescriptor; import junit.framework.TestCase; public class AddDropColumnTest extends TestCase { private Connection dbcon = null; private String sampleTable = "sampleTable"; @Override public void setUp() { try { dbcon = DbConnector.instance().getConnection("postgresql", "149.156.205.250:13833", "dbmigrate", "dbmigrate", "dbmigrate"); } catch(Exception exception) { fail(exception.getMessage()); } } private String getColName() { Random rnd = new Random(); int randNum = rnd.nextInt(9999); String colname = "sampleCol" + randNum; return colname; } public void testAddDropIntDefaultColumn() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.INT); col.setDefault("5"); //col.setSigned(false); AddColumnOperationDescriptor aco = new AddColumnOperationDescriptor(sampleTable, col); AddColumnExecutor ace = new AddColumnExecutor(dbcon); System.out.println(ace.createSql(aco)); try { ace.execute(aco); } catch (Exception e) { e.printStackTrace(); fail(); } Table t=new Table(); t.setName(sampleTable); DropColumnOperationDescriptor dco = new DropColumnOperationDescriptor(t, col); DropColumnExecutor dce = new DropColumnExecutor(dbcon); System.out.println(dce.createSql(dco)); try { dce.execute(dco); } catch (Exception e) { e.printStackTrace(); fail(); } } public void testAddIntColumn() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.INT); //col.setSigned(false); AddColumnOperationDescriptor aco = new AddColumnOperationDescriptor(sampleTable, col); AddColumnExecutor ace = new AddColumnExecutor(dbcon); System.out.println(ace.createSql(aco)); try { ace.execute(aco); } catch (Exception e) { e.printStackTrace(); fail(); } Table tbl = new Table(); tbl.setName(sampleTable); DropColumnOperationDescriptor dco = new DropColumnOperationDescriptor(tbl, col); DropColumnExecutor dce = new DropColumnExecutor(dbcon); System.out.println(dce.createSql(dco)); try { dce.execute(dco); } catch (Exception e) { e.printStackTrace(); fail(); } } public void testAddVarcharColumn() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.VARCHAR); col.setLength(231); AddColumnOperationDescriptor aco = new AddColumnOperationDescriptor(sampleTable, col); AddColumnExecutor ace = new AddColumnExecutor(dbcon); System.out.println(ace.createSql(aco)); try { ace.execute(aco); } catch (Exception e) { e.printStackTrace(); fail(); } Table tbl = new Table(); tbl.setName(sampleTable); DropColumnOperationDescriptor dco = new DropColumnOperationDescriptor(tbl, col); DropColumnExecutor dce = new DropColumnExecutor(dbcon); System.out.println(dce.createSql(dco)); try { dce.execute(dco); } catch (Exception e) { e.printStackTrace(); fail(); } } public void testAddDropIntColumn() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.INT); //col.setSigned(false); AddColumnOperationDescriptor aco = new AddColumnOperationDescriptor(sampleTable, col); AddColumnExecutor ace = new AddColumnExecutor(dbcon); System.out.println(ace.createSql(aco)); try { ace.execute(aco); } catch (Exception e) { e.printStackTrace(); fail(); } Table tbl = new Table(); tbl.setName(sampleTable); DropColumnOperationDescriptor dco = new DropColumnOperationDescriptor(tbl, col); DropColumnExecutor dce = new DropColumnExecutor(dbcon); System.out.println(dce.createSql(dco)); try { dce.execute(dco); } catch (Exception e) { e.printStackTrace(); fail(); } } }