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);
     }
 }