public void RollbackHeldSavepointException() { ISmartTransactionObject transaction = A.Fake <ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); Assert.Throws <TransactionUsageException>(() => stat.RollbackToHeldSavepoint()); }
public void RollbackHeldSavepointException() { ISmartTransactionObject transaction = MockRepository.GenerateMock <ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); stat.RollbackToHeldSavepoint(); }
public void RollbackHeldSavepointSuccess() { 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.RollbackToHeldSavepoint(); saveMgr.AssertWasCalled(x => x.RollbackToSavepoint(savepoint)); }
public void RollbackHeldSavepointSuccess() { 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.RollbackToHeldSavepoint(); saveMgr.AssertWasCalled(x => x.RollbackToSavepoint(savepoint)); }
public void RollbackHeldSavepointSuccess() { 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.RollbackToHeldSavepoint(); A.CallTo(() => saveMgr.RollbackToSavepoint(savepoint)).MustHaveHappened(); }
public void RollbackHeldSavepointSuccess() { 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.RollbackToHeldSavepoint(); saveMgr.Verify(); }
public void RollbackHeldSavepointSuccess() { 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.RollbackToHeldSavepoint(); saveMgr.Verify(); }
public void RollbackHeldSavepointException() { ISmartTransactionObject transaction = MockRepository.GenerateMock<ISmartTransactionObject>(); DefaultTransactionStatus stat = new DefaultTransactionStatus(transaction, true, false, false, true, new object()); stat.RollbackToHeldSavepoint(); }
private void ProcessRollback(DefaultTransactionStatus status) { try { try { TriggerBeforeCompletion(status); if (status.HasSavepoint) { if (status.Debug) { log.Debug("Rolling back transaction to savepoint."); } status.RollbackToHeldSavepoint(); } else if (status.IsNewTransaction) { if (status.Debug) { log.Debug("Initiating transaction rollback"); } DoRollback(status); } else if (status.HasTransaction()) { if (status.LocalRollbackOnly) { if (status.Debug) { log.Debug("Participating transaction failed - marking existing transaction as rollback-only"); } } DoSetRollbackOnly(status); } else { log.Debug("Should roll back transaction but cannot - no transaction available."); } } catch (Exception) { TriggerAfterCompletion(status, TransactionSynchronizationStatus.Unknown); throw; } TriggerAfterCompletion(status, TransactionSynchronizationStatus.Rolledback); } finally { CleanupAfterCompletion(status); } }
/** * Process an actual rollback. * The completed flag has already been checked. * @param status object representing the transaction * @throws TransactionException in case of rollback failure */ private void ProcessRollback(DefaultTransactionStatus status) { try { try { this.TriggerBeforeCompletion(status); if (status.HasSavepoint) { if (status.Debug) { Logger.Debug("Rolling back transaction to savepoint"); } status.RollbackToHeldSavepoint(); } else if (status.IsNewTransaction) { if (status.Debug) { Logger.Debug("Initiating transaction rollback"); } this.DoRollback(status); } else if (status.HasTransaction()) { if (status.LocalRollbackOnly || this.globalRollbackOnParticipationFailure) { if (status.Debug) { Logger.Debug( "Participating transaction failed - marking existing transaction as rollback-only"); } this.DoSetRollbackOnly(status); } else { if (status.Debug) { Logger.Debug( "Participating transaction failed - letting transaction originator decide on rollback"); } } } else { Logger.Debug("Should roll back transaction but cannot - no transaction available"); } } catch (Exception ex) { this.TriggerAfterCompletion(status, TransactionSynchronizationStatus.Unknown); throw; } this.TriggerAfterCompletion(status, TransactionSynchronizationStatus.Rolledback); } finally { this.CleanupAfterCompletion(status); } }
public void RollbackHeldSavepointException() { DefaultTransactionStatus stat = new DefaultTransactionStatus( new MyMockTxnObject(), true, false, false, true, new object() ); stat.RollbackToHeldSavepoint(); }
public void RollbackHeldSavepointException() { DefaultTransactionStatus stat = new DefaultTransactionStatus(new MyMockTxnObject(), true, false, false, true, new object()); stat.RollbackToHeldSavepoint(); }