Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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)));
        }