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); }
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); }
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()); }