public void CreateTransactionStrategy_WithParentFunction_And_WithoutParentTransaction() { ITransactionMode transactionMode = new CreateRootTransactionMode(true, new TestTransactionFactory()); WxeFunction parentFunction = new TestFunction2(new NoneTransactionMode()); WxeFunction childFunction = new TestFunction2(transactionMode); parentFunction.Add(childFunction); WxeStep stepMock = MockRepository.GenerateMock <WxeStep> (); childFunction.Add(stepMock); WxeContextFactory wxeContextFactory = new WxeContextFactory(); WxeContext context = wxeContextFactory.CreateContext(new TestFunction()); stepMock.Expect(mock => mock.Execute(context)).WhenCalled( invocation => { TransactionStrategyBase strategy = transactionMode.CreateTransactionStrategy(childFunction, context); Assert.That(strategy, Is.InstanceOf(typeof(RootTransactionStrategy))); Assert.That(strategy.OuterTransactionStrategy, Is.SameAs(((TestFunction2)parentFunction).TransactionStrategy)); }); parentFunction.Execute(context); }
public void CreateTransactionStrategy_WithoutParentFunction() { WxeContextFactory wxeContextFactory = new WxeContextFactory(); WxeContext context = wxeContextFactory.CreateContext(new TestFunction()); ITransactionMode transactionMode = new CreateRootTransactionMode(true, new TestTransactionFactory()); TransactionStrategyBase strategy = transactionMode.CreateTransactionStrategy(new TestFunction2(transactionMode), context); Assert.That(strategy, Is.InstanceOf(typeof(RootTransactionStrategy))); Assert.That(strategy.GetNativeTransaction <TestTransaction> (), Is.InstanceOf(typeof(TestTransaction))); Assert.That(strategy.OuterTransactionStrategy, Is.InstanceOf(typeof(NullTransactionStrategy))); Assert.That(((RootTransactionStrategy)strategy).AutoCommit, Is.True); Assert.That(((RootTransactionStrategy)strategy).Transaction, Is.InstanceOf(typeof(TestTransaction))); }