public void TestSwitchState_FromStateToNull_ThrowsException() { TestSwitchableStateEngine engine = new TestSwitchableStateEngine(); ITestSwitchableState state = Substitute.For <ITestSwitchableState>(); engine.TrySwitchState(state); engine.TrySwitchState(null); }
public void TestSwitchState_FromAStateToSameState_CurStateRemainsState() { TestSwitchableStateEngine engine = new TestSwitchableStateEngine(); ITestSwitchableState state = Substitute.For <ITestSwitchableState>(); engine.TrySwitchState(state); Assert.That(engine.GetCurState(), Is.SameAs(state)); }
public void TrySwitchState_FromNullToState_StateCalledOnEnter() { TestSwitchableStateEngine engine = new TestSwitchableStateEngine(); ITestSwitchableState state = Substitute.For <ITestSwitchableState>(); engine.TrySwitchState(state); state.Received(1).OnEnter(); }
public void TestSwitchState_FromAStateToSameState_StateCalledOnEnterOnce() { TestSwitchableStateEngine engine = new TestSwitchableStateEngine(); ITestSwitchableState state = Substitute.For <ITestSwitchableState>(); engine.TrySwitchState(state); state.Received(1).OnEnter(); state.DidNotReceive().OnExit(); }
public void TestSwitchState_FromStateToDiffStateOfDiffType_TransitionSuccessful() { TestSwitchableStateEngine engine = new TestSwitchableStateEngine(); ITestSwitchableState stateA = Substitute.For <ITestSwitchableStateA>(); ITestSwitchableState stateB = Substitute.For <ITestSwitchableStateB>(); engine.TrySwitchState(stateA); engine.TrySwitchState(stateB); Assert.That(engine.GetCurState(), Is.SameAs(stateB)); stateA.Received(1).OnEnter(); stateA.Received(1).OnExit(); stateB.Received(1).OnEnter(); }