package dbmigrate.executor; import java.sql.Connection; import java.util.ArrayList; import java.util.List; import java.util.Random; import junit.framework.TestCase; import dbmigrate.model.db.Column; import dbmigrate.model.db.DbConnector; import dbmigrate.model.db.DbConnectorTest; import dbmigrate.model.db.IColumn; import dbmigrate.model.db.Table; import dbmigrate.model.db.TypeEnum; import dbmigrate.model.operation.AddColumnOperationDescriptor; import dbmigrate.model.operation.CreateTableOperationDescriptor; import dbmigrate.model.operation.DropTableOperationDescriptor; public class AddDropTableTest extends TestCase { private Connection dbcon = null; private String sampleTable = null; @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 getTblName() { Random rnd = new Random(); int randNum = rnd.nextInt(9999); String colname = "sampleTable" + randNum; return colname; } private String getColName() { Random rnd = new Random(); int randNum = rnd.nextInt(9999); String colname = "sampleCol" + randNum; return colname; } public void testAddTable() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.INT); CreateTableOperationDescriptor cto = new CreateTableOperationDescriptor(); Table tbl = new Table(); tbl.setName(getTblName()); List<IColumn> columns = new ArrayList<IColumn>(); columns.add(col); tbl.setColumns(columns); cto.setTable(tbl); CreateTableExecutor cte = new CreateTableExecutor(null); cte.setConnection(dbcon); System.out.println(cte.createSql(cto)); try { cte.execute(cto); } catch (Exception e) { e.printStackTrace(); fail(); } } public void testDropTable() { String colname = getColName(); Column col = new Column(); col.setName(colname); col.setType(TypeEnum.INT); CreateTableOperationDescriptor cto = new CreateTableOperationDescriptor(); Table tbl = new Table(); tbl.setName(getTblName()); List<IColumn> columns = new ArrayList<IColumn>(); columns.add(col); tbl.setColumns(columns); cto.setTable(tbl); CreateTableExecutor cte = new CreateTableExecutor(null); cte.setConnection(dbcon); System.out.println(cte.createSql(cto)); try { cte.execute(cto); } catch (Exception e) { e.printStackTrace(); fail(); } DropTableOperationDescriptor dto = new DropTableOperationDescriptor(tbl); DropTableExecutor dte = new DropTableExecutor(dbcon); System.out.println(dte.createSql(dto)); try { dte.execute(dto); } catch (Exception e) { e.printStackTrace(); fail(); } } }