public void ReleaseHeldSavepointException() { ISmartTransactionObject transaction = A.Fake <ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); Assert.Throws <TransactionUsageException>(() => stat.ReleaseHeldSavepoint()); }
public void ReleaseHeldSavepointException() { ISmartTransactionObject transaction = MockRepository.GenerateMock <ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); stat.ReleaseHeldSavepoint(); }
public void ReleaseHeldSavepointSuccess() { ISavepointManager saveMgr = MockRepository.GenerateMock <ISavepointManager>(); string savepoint = "savepoint"; DefaultTransactionStatus status = new DefaultTransactionStatus(saveMgr, true, false, false, true, new object()); status.CreateAndHoldSavepoint(savepoint); Assert.IsTrue(status.HasSavepoint); Assert.AreEqual(savepoint, status.Savepoint); status.ReleaseHeldSavepoint(); saveMgr.AssertWasCalled(x => x.CreateSavepoint(savepoint)); saveMgr.AssertWasCalled(x => x.ReleaseSavepoint(savepoint)); }
public void ReleaseHeldSavepointSuccess() { ISavepointManager saveMgr = A.Fake <ISavepointManager>(); string savepoint = "savepoint"; DefaultTransactionStatus status = new DefaultTransactionStatus(saveMgr, true, false, false, true, new object()); status.CreateAndHoldSavepoint(savepoint); Assert.IsTrue(status.HasSavepoint); Assert.AreEqual(savepoint, status.Savepoint); status.ReleaseHeldSavepoint(); A.CallTo(() => saveMgr.CreateSavepoint(savepoint)).MustHaveHappened(); A.CallTo(() => saveMgr.ReleaseSavepoint(savepoint)).MustHaveHappened(); }
public void ReleaseHeldSavepointSuccess() { MyMockTxnObjectSavepointMgr saveMgr = new MyMockTxnObjectSavepointMgr(); string savepoint = "savepoint"; saveMgr.SetExpectedSavepoint(savepoint); saveMgr.SetSavepointToReturn(savepoint); DefaultTransactionStatus status = new DefaultTransactionStatus(saveMgr, true, false, false, true, new object()); status.CreateAndHoldSavepoint(savepoint); Assert.IsTrue(status.HasSavepoint); Assert.AreEqual(savepoint, status.Savepoint); status.ReleaseHeldSavepoint(); saveMgr.Verify(); }
public void ReleaseHeldSavepointSuccess() { ISavepointManager saveMgr = MockRepository.GenerateMock<ISavepointManager>(); string savepoint = "savepoint"; DefaultTransactionStatus status = new DefaultTransactionStatus(saveMgr, true, false, false, true, new object()); status.CreateAndHoldSavepoint(savepoint); Assert.IsTrue(status.HasSavepoint); Assert.AreEqual(savepoint, status.Savepoint); status.ReleaseHeldSavepoint(); saveMgr.AssertWasCalled(x => x.CreateSavepoint(savepoint)); saveMgr.AssertWasCalled(x => x.ReleaseSavepoint(savepoint)); }
public void ReleaseHeldSavepointException() { ISmartTransactionObject transaction = MockRepository.GenerateMock<ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); stat.ReleaseHeldSavepoint(); }
private void ProcessCommit(DefaultTransactionStatus status) { try { bool beforeCompletionInvoked = false; try { TriggerBeforeCommit(status); TriggerBeforeCompletion(status); beforeCompletionInvoked = true; bool globalRollbackOnly = false; if (status.IsNewTransaction || FailEarlyOnGlobalRollbackOnly) { globalRollbackOnly = status.GlobalRollbackOnly; } if (status.HasSavepoint) { status.ReleaseHeldSavepoint(); } else if (status.IsNewTransaction) { DoCommit(status); } // Throw UnexpectedRollbackException if we have a global rollback-only // marker but still didn't get a corresponding exception from commit. if (globalRollbackOnly) { throw new UnexpectedRollbackException( "Transaction silently rolled back because it has been marked as rollback-only"); } } catch (UnexpectedRollbackException) { TriggerAfterCompletion(status, TransactionSynchronizationStatus.Rolledback); throw; } catch (TransactionException ex) { if (RollbackOnCommitFailure) { DoRollbackOnCommitException(status, ex); } else { TriggerAfterCompletion(status, TransactionSynchronizationStatus.Unknown); } throw; } catch (Exception ex) { if (!beforeCompletionInvoked) { TriggerBeforeCompletion(status); } DoRollbackOnCommitException(status, ex); throw; } // Trigger AfterCommit callbacks, with an exception thrown there // propagated to callers but the transaction still considered as commited. try { TriggerAfterCommit(status); } finally { TriggerAfterCompletion(status, TransactionSynchronizationStatus.Committed); } } finally { CleanupAfterCompletion(status); } }
public void ReleaseHeldSavepointSuccess() { MyMockTxnObjectSavepointMgr saveMgr = new MyMockTxnObjectSavepointMgr(); string savepoint = "savepoint"; saveMgr.SetExpectedSavepoint( savepoint ); saveMgr.SetSavepointToReturn( savepoint ); DefaultTransactionStatus status = new DefaultTransactionStatus( saveMgr , true, false, false, true, new object()); status.CreateAndHoldSavepoint( savepoint ); Assert.IsTrue( status.HasSavepoint ); Assert.AreEqual( savepoint, status.Savepoint ); status.ReleaseHeldSavepoint(); saveMgr.Verify(); }
public void ReleaseHeldSavepointException() { DefaultTransactionStatus stat = new DefaultTransactionStatus( new MyMockTxnObject(), true, false, false, true, new object() ); stat.ReleaseHeldSavepoint(); }
public void ReleaseHeldSavepointException() { DefaultTransactionStatus stat = new DefaultTransactionStatus(new MyMockTxnObject(), true, false, false, true, new object()); stat.ReleaseHeldSavepoint(); }