package liquibase.changelog;
import liquibase.database.Database;
/**
* Tests for {@link liquibase.changelog.ChangeSet#execute(DatabaseChangeLog, Database)}
*/
public class ChangeSetExecuteTest {
// private void trainToAcceptAnyNumberOfCommitsOrRollbacks(Database database) {
// try {
// database.commit();
// expectLastCall().anyTimes();
// database.rollback();
// expectLastCall().anyTimes();
// } catch (DatabaseException e) {
// throw new RuntimeException(e);
// }
// }
//
// private Database createMockDatabaseThatSupportsDdlInTran() {
// Database database = createMock(Database.class);
// expect(database.supportsDDLInTransaction()).andStubReturn(true);
// expect(database.getAutoCommitMode()).andStubReturn(false);
// database.setObjectQuotingStrategy(ObjectQuotingStrategy.LEGACY);
// return database;
// }
//
// private Database createMockDatabaseThatDoesNotSupportDdlInTran() {
// Database database = createMock(Database.class);
// database.setObjectQuotingStrategy(ObjectQuotingStrategy.LEGACY);
// expect(database.supportsDDLInTransaction()).andStubReturn(false);
// expect(database.getAutoCommitMode()).andStubReturn(true);
// return database;
// }
//
// private Executor createMockExecutor() {
// Executor executor = createNiceMock(Executor.class);
// replay(executor);
// return executor;
// }
//
// private ChangeSet createTestChangeSet(boolean runInTransaction) {
// return new ChangeSet("test-id", "test-author", false, false, "/test.xml", null, null, runInTransaction, null);
// }
//
// @Test
// public void testMockDatabaseThatSupportsDdlInTran() {
// Database database = createMockDatabaseThatSupportsDdlInTran();
// replay(database);
// assertTrue(database.supportsDDLInTransaction());
// assertFalse(database.getAutoCommitMode());
// }
//
// @Test
// public void testMockDatabaseThatDoesNotSupportDdlInTran() {
// Database database = createMockDatabaseThatDoesNotSupportDdlInTran();
// replay(database);
// assertFalse(database.supportsDDLInTransaction());
// assertTrue(database.getAutoCommitMode());
// }
//
// @Test
// public void testExecuteForDatabaseThatSupportsDdlInTranWhenRunInTransactionIsTrue() throws Exception {
// Database database = createMockDatabaseThatSupportsDdlInTran();
// ExecutorService.getInstance().setExecutor(database, createMockExecutor());
// checkOrder(database, true);
// database.setAutoCommit(false); // before ChangeSet is run
// checkOrder(database, false);
// trainToAcceptAnyNumberOfCommitsOrRollbacks(database);
// // no need to set back after ChangeSet is run because false is the auto-commit mode for
// // databases that support DDL in transactions
// replay(database);
//
// ChangeSet changeSet = createTestChangeSet(true);
// changeSet.execute(new DatabaseChangeLog(), database);
//
// verify(database);
// }
//
// @Test
// public void testExecuteForDatabaseThatSupportsDdlInTranWhenRunInTransactionIsFalse() throws Exception {
// Database database = createMockDatabaseThatSupportsDdlInTran();
// ExecutorService.getInstance().setExecutor(database, createMockExecutor());
// checkOrder(database, true);
// database.setAutoCommit(true); // before ChangeSet is run
// checkOrder(database, false);
// trainToAcceptAnyNumberOfCommitsOrRollbacks(database);
// checkOrder(database, true);
// database.setAutoCommit(false); // after ChangeSet is run
// replay(database);
//
// ChangeSet changeSet = createTestChangeSet(false);
// changeSet.execute(new DatabaseChangeLog(), database);
//
// verify(database);
// }
//
// @Test
// public void testExecuteForDatabaseThatDoesNotSupportDdlInTranWhenRunInTransactionIsTrue() throws Exception {
// Database database = createMockDatabaseThatDoesNotSupportDdlInTran();
// ExecutorService.getInstance().setExecutor(database, createMockExecutor());
// trainToAcceptAnyNumberOfCommitsOrRollbacks(database);
// // database.setAutoCommit(boolean) should not be called
// replay(database);
//
// ChangeSet changeSet = createTestChangeSet(true);
// changeSet.execute(new DatabaseChangeLog(), database);
//
// verify(database);
// }
//
// @Test
// public void testExecuteForDatabaseThatDoesNotSupportDdlInTranWhenRunInTransactionIsFalse() throws Exception {
// Database database = createMockDatabaseThatDoesNotSupportDdlInTran();
// ExecutorService.getInstance().setExecutor(database, createMockExecutor());
// trainToAcceptAnyNumberOfCommitsOrRollbacks(database);
// // database.setAutoCommit(boolean) should not be called
// replay(database);
//
// ChangeSet changeSet = createTestChangeSet(false);
// changeSet.execute(new DatabaseChangeLog(), database);
//
// verify(database);
// }
public void testNothing() {
}
}