package liquibase.sqlgenerator.core; public abstract class AddDefaultValueGeneratorTest { // @Test // public void execute_stringDefaultValue() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases(new DatabaseTest() { // // public void performTest(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, "varchar(50)")); // // DatabaseSnapshotGenerator snapshot = database.createDatabaseSnapshot(null, null); // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // // new Executor(database).execute(new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, "New Default Value")); // // snapshot = database.createDatabaseSnapshot(null, null); // assertEquals("New Default Value", snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // }); // } // // @Test // public void execute_booleanDefaultValue() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, Boolean.TRUE)) { // // protected void setup(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, database.getBooleanType().getDataTypeName())); // super.setup(database); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // if (snapshot.getDatabase() instanceof MySQLDatabase // || snapshot.getDatabase() instanceof MSSQLDatabase // || snapshot.getDatabase() instanceof SybaseASADatabase // ) { // assertEquals("true", snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue().toString().toLowerCase()); // } else { // assertEquals(snapshot.getDatabase().getTrueBooleanValue().toLowerCase(), snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue().toString().toLowerCase()); // } // } // // }); // } // // @Test // public void execute_intDefaultValue() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, 42)) { // // protected void setup(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, "int")); // super.setup(database); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertEquals(new Integer(42), new Integer(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue().toString())); // } // // }); // } // // @Test // public void execute_floatDefaultValue() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, 42.56)) { // // protected void setup(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, "float")); // super.setup(database); //To change body of overridden methods use File | Settings | File Templates. // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertEquals(new Float(42.56f), new Float(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue().toString())); // } // // }); // } // // @Test // public void execute_dateTimeDefaultValue() throws Exception { // final java.sql.Timestamp date = new java.sql.Timestamp(new Date().getTime()); // // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, date)) { // // protected void setup(Database database) throws DatabaseException { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, database.getDateTimeType().getDataTypeName())); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertEquals(date.getTime() / 1000, ((Date) snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()).getTime() / 1000); // } // // }); // } // // @Test // public void execute_dateDefaultValue() throws Exception { // final java.sql.Date date = new java.sql.Date(new Date().getTime()); // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, date)) { // // protected void setup(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, database.getDateType().getDataTypeName())); // // super.setup(database); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // Object defaultValue = snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue(); // if (defaultValue instanceof java.sql.Date) { // assertEquals(new ISODateFormat().format(date), new ISODateFormat().format(((java.sql.Date) defaultValue))); // } else { //mssql uses smalldatetime for date which is actually a timestamp // Calendar cal = Calendar.getWriteExecutor(); // cal.setTime(date); // cal.set(Calendar.HOUR, 0); // cal.set(Calendar.MINUTE, 0); // cal.set(Calendar.SECOND, 0); // cal.set(Calendar.MILLISECOND, 0); // assertEquals(new ISODateFormat().format(new java.sql.Date(cal.getTimeInMillis())), new ISODateFormat().format(new java.sql.Date(((java.sql.Timestamp) defaultValue).getTime()))); // } // } // // }); // } // // @Test // public void execute_timeDefaultValue() throws Exception { // final java.sql.Time time = new java.sql.Time(new Date().getTime()); // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddDefaultValueStatement(null, TABLE_NAME, COLUMN_NAME, null, time)) { // // protected void setup(Database database) throws Exception { // new Executor(database).execute(new CreateTableStatement(null, TABLE_NAME) // .addColumn("id", "int") // .addColumn(COLUMN_NAME, database.getTimeType().getDataTypeName())); // super.setup(database); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue()); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // Object defaultValue = snapshot.getTable(TABLE_NAME).getColumn(COLUMN_NAME).getDefaultValue(); // if (defaultValue instanceof java.sql.Time) { // assertEquals(new ISODateFormat().format(time), new ISODateFormat().format(((java.sql.Time) defaultValue))); // } else { //mssql uses smalldatetime which is a timestamp, oracle uses date which is a date // Calendar cal = Calendar.getWriteExecutor(); // cal.setTime(time); // cal.set(Calendar.DAY_OF_YEAR, 0); // cal.set(Calendar.YEAR, 0); // assertEquals(new ISODateFormat().format(new java.sql.Time(cal.getTimeInMillis())), new ISODateFormat().format(new java.sql.Time(((Date) defaultValue).getTime()))); // } // } // }); // } }