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()); }
public void InvalidCardGivesException(DevelopmentCardType type) { 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); Assert.Throws<ArgumentException>(() => provider.Get(type)); }
public void StateProviderCantBeCreatedWithoutFactory() { var flowstates = new IFlowSate[] { new Mock<IFlowSate>().Object, new Mock<IFlowSate>().Object, new Mock<IFlowSate>().Object }; Assert.Throws<ArgumentNullException>(() => new StateProvider(flowstates, null)); }
public void TestGetDevelopmentCard(DevelopmentCardType cardType, Type expectedState) { 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.Get(cardType); Assert.IsAssignableFrom(expectedState, result); }