package liquibase.sqlgenerator.core; public abstract class AddForeignKeyConstraintGeneratorTest { // @Test // public void execute() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddForeignKeyConstraintStatement(FK_NAME, // null, BASE_TABLE_NAME, BASE_COLUMN_NAME, // null, REF_TABLE_NAME, REF_COL_NAME)) { // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getForeignKey(FK_NAME)); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // ForeignKey fkSnapshot = snapshot.getForeignKey(FK_NAME); // assertNotNull(fkSnapshot); // assertEquals(BASE_TABLE_NAME.toUpperCase(), fkSnapshot.getForeignKeyTable().getName().toUpperCase()); // assertEquals(BASE_COLUMN_NAME.toUpperCase(), fkSnapshot.getForeignKeyColumns().toUpperCase()); // assertEquals(REF_TABLE_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyTable().getName().toUpperCase()); // assertEquals(REF_COL_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyColumns().toUpperCase()); // assertFalse(fkSnapshot.isDeferrable()); // assertFalse(fkSnapshot.isInitiallyDeferred()); // } // // }); // } // // @Test // public void execute_deferrable() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(null, new AddForeignKeyConstraintStatement(FK_NAME, // null, BASE_TABLE_NAME, BASE_COLUMN_NAME, // null, REF_TABLE_NAME, REF_COL_NAME) // .setDeferrable(true) // .setInitiallyDeferred(true)) { // protected boolean expectedException(Database database, DatabaseException exception) { // return !database.supportsInitiallyDeferrableColumns(); // } // // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getForeignKey(FK_NAME)); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // ForeignKey fkSnapshot = snapshot.getForeignKey(FK_NAME); // assertNotNull(fkSnapshot); // assertEquals(BASE_TABLE_NAME.toUpperCase(), fkSnapshot.getForeignKeyTable().getName().toUpperCase()); // assertEquals(BASE_COLUMN_NAME.toUpperCase(), fkSnapshot.getForeignKeyColumns().toUpperCase()); // assertEquals(REF_TABLE_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyTable().getName().toUpperCase()); // assertEquals(REF_COL_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyColumns().toUpperCase()); // assertTrue(fkSnapshot.isDeferrable()); // assertTrue(fkSnapshot.isInitiallyDeferred()); // } // }); // } // // @Test // public void execute_deleteCascade() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases(new SqlStatementDatabaseTest(null, new AddForeignKeyConstraintStatement(FK_NAME, // null, BASE_TABLE_NAME, BASE_COLUMN_NAME, // null, REF_TABLE_NAME, REF_COL_NAME).setDeleteRule(DatabaseMetaData.importedKeyCascade)) { // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getForeignKey(FK_NAME)); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // ForeignKey fkSnapshot = snapshot.getForeignKey(FK_NAME); // assertNotNull(fkSnapshot); // assertEquals(BASE_TABLE_NAME.toUpperCase(), fkSnapshot.getForeignKeyTable().getName().toUpperCase()); // assertEquals(BASE_COLUMN_NAME.toUpperCase(), fkSnapshot.getForeignKeyColumns().toUpperCase()); // assertEquals(REF_TABLE_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyTable().getName().toUpperCase()); // assertEquals(REF_COL_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyColumns().toUpperCase()); // assertFalse(fkSnapshot.isDeferrable()); // assertFalse(fkSnapshot.isInitiallyDeferred()); // } // // }); // } // // @Test // public void execute_altSchema() throws Exception { // new DatabaseTestTemplate().testOnAvailableDatabases( // new SqlStatementDatabaseTest(TestContext.ALT_SCHEMA, new AddForeignKeyConstraintStatement(FK_NAME, // TestContext.ALT_SCHEMA, BASE_TABLE_NAME, BASE_COLUMN_NAME, // TestContext.ALT_SCHEMA, REF_TABLE_NAME, REF_COL_NAME)) { // protected void preExecuteAssert(DatabaseSnapshotGenerator snapshot) { // assertNull(snapshot.getForeignKey(FK_NAME)); // } // // protected void postExecuteAssert(DatabaseSnapshotGenerator snapshot) { // ForeignKey fkSnapshot = snapshot.getForeignKey(FK_NAME); // assertNotNull(fkSnapshot); // assertEquals(BASE_TABLE_NAME.toUpperCase(), fkSnapshot.getForeignKeyTable().getName().toUpperCase()); // assertEquals(BASE_COLUMN_NAME.toUpperCase(), fkSnapshot.getForeignKeyColumns().toUpperCase()); // assertEquals(REF_TABLE_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyTable().getName().toUpperCase()); // assertEquals(REF_COL_NAME.toUpperCase(), fkSnapshot.getPrimaryKeyColumns().toUpperCase()); // assertFalse(fkSnapshot.isDeferrable()); // assertFalse(fkSnapshot.isInitiallyDeferred()); // } // // }); // } }