示例#1
0
        public void ExpectInitialStateToBeFirst()
        {
            var state1 = new Mock<IFlowSate>();
            var state2 = new Mock<IFlowSate>();
            var flowstates = new IFlowSate[] { state1.Object, state2.Object };

            var factory = CreateFactory();
            var provider = new StateProvider(flowstates, factory);
            var result = provider.GetNext();
            Assert.Equal(state1.Object, result);
        }
示例#2
0
        public void ExpectNextGivenStateIfCurrentCopmpleted()
        {
            var state1 = new Mock<IFlowSate>();
            var state2 = new Mock<IFlowSate>();
            var flowstates = new IFlowSate[] { state1.Object, state2.Object };

            var factory = CreateFactory();
            var provider = new StateProvider(flowstates, factory);
            state1.Setup(s => s.Completed).Returns(true);
            var result = provider.GetNext();

            Assert.Equal(state2.Object, result);
        }
示例#3
0
        public void ExpectExceptionIfProviderHasNoMoreNextStates()
        {
            var state1 = new Mock<IFlowSate>();
            var state2 = new Mock<IFlowSate>();
            var flowstates = new IFlowSate[] { state1.Object, state2.Object };

            var factory = CreateFactory();
            var provider = new StateProvider(flowstates, factory);
            state1.Setup(s => s.Completed).Returns(true);
            state2.Setup(s => s.Completed).Returns(true);

            Assert.Throws<InvalidOperationException>(() => provider.GetNext());
        }