protected void InvokeOnExecutionPlay(ScopedTransactionStrategyBase strategy)
        {
            _childTransactionStrategyMock.BackToRecord();
            _childTransactionStrategyMock.Stub(stub => stub.OnExecutionPlay(_context, _executionListenerStub));
            _childTransactionStrategyMock.Replay();

            _transactionMock.BackToRecord();
            _transactionMock.Stub(stub => stub.EnterScope()).Return(ScopeMock);
            _transactionMock.Replay();

            strategy.OnExecutionPlay(Context, ExecutionListenerStub);

            _transactionMock.BackToRecord();
            _childTransactionStrategyMock.BackToRecord();
        }
示例#2
0
        public void OnExecutionStop()
        {
            _childTransactionMock.Stub(stub => stub.EnterScope()).Return(MockRepository.GenerateStub <ITransactionScope> ());
            _mockRepository.ReplayAll();
            _strategy.OnExecutionPlay(_context, _executionListenerStub);
            _childTransactionMock.BackToRecord();

            using (_mockRepository.Ordered())
            {
                _childTransactionMock.Stub(stub => stub.Commit());
                _executionContextStub.Stub(stub => stub.GetOutParameters()).Return(new object[0]);
                _childTransactionMock.Stub(stub => stub.EnsureCompatibility(Arg <IEnumerable> .Is.NotNull));
                _outerTransactionStrategyMock.Stub(mock => mock.EnsureCompatibility(Arg <IEnumerable> .Is.NotNull));
                _childTransactionMock.Expect(mock => mock.Release());
                _outerTransactionStrategyMock.Expect(mock => mock.UnregisterChildTransactionStrategy(_strategy));
            }

            _mockRepository.ReplayAll();

            _strategy.OnExecutionStop(_context, _executionListenerStub);

            _mockRepository.VerifyAll();
        }