public void TestDatabaseTransaction_Failure() { //---------------Set up test pack------------------- TransactionCommitterDB committerDB = new TransactionCommitterDB(DatabaseConnection.CurrentConnection); StubDatabaseTransaction transactional1 = new StubDatabaseTransaction(); StubDatabaseFailureTransaction transactional2 = new StubDatabaseFailureTransaction(); committerDB.AddTransaction(transactional1); committerDB.AddTransaction(transactional2); //---------------Execute Test ---------------------- try { committerDB.CommitTransaction(); } catch (NotImplementedException) { } //---------------Test Result ----------------------- Assert.IsFalse(transactional1.Committed); Assert.IsFalse(transactional2.Committed); AssertTransactionsInTableAre(0); }
public void TestRollBack_OnError() { //---------------Set up test pack------------------- //Create object in DB MockBoWithRollBack mockBo = new MockBoWithRollBack(); StubDatabaseFailureTransaction trnFail = new StubDatabaseFailureTransaction(); TransactionCommitterStubDB trnCommitter = new TransactionCommitterStubDB(DatabaseConnection.CurrentConnection); trnCommitter.AddBusinessObject(mockBo); trnCommitter.AddTransaction(trnFail); Assert.IsFalse(mockBo.RollBackExecuted); //---------------Execute Test ---------------------- try { trnCommitter.CommitTransaction(); Assert.Fail(); } //---------------Test Result ----------------------- //Raise Exception that the object has been edited since // the user last edited. catch (NotImplementedException) { Assert.IsTrue(mockBo.RollBackExecuted); } }