public void CurrentState_IsSet_ByCtor() { var state = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); Assert.AreEqual(state, fsm.CurrentState); }
public void ExplicitStateStateMachine_IsSet_ByCtor() { var state = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); Assert.AreEqual(fsm, state.StateMachine); }
public void CurrentStateOnEnter_IsCalled_ByCtor() { var initialState = Substitute.For <ExplicitState>(); var fsm = new FinitiStateMachine.FiniteStateMachine(initialState); initialState.Received().OnEnter(); }
public void CurrentStateUpdate_IsCalled_ByUpdate() { var state = Substitute.For <ExplicitState>(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); fsm.Update(); state.Received().Update(); }
public void ExplicitState_IsAddedToStates_ByAdd() { var state = new ExplicitState(); var newState = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); fsm.Add(newState); Assert.IsTrue(fsm.States.Contains(newState)); }
public void ExplicitStateStateMachine_IsSet_ByAdd() { var state = new ExplicitState(); var newState = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); fsm.Add(newState); Assert.AreEqual(fsm, newState.StateMachine); }
public void CurrentStateOnExit_IsCalled_ByTransition() { var state = new ExplicitState(); var initialState = Substitute.For <ExplicitState>(); var fsm = new FinitiStateMachine.FiniteStateMachine(initialState); fsm.Transition(state); initialState.Received().OnExit(); }
public void CurrentState_IsSetToInitialState_IfExplicitStateUpdateReturnsNull() { var state = new ExplicitState(); var newState = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); fsm.Transition(newState); fsm.Update(); Assert.AreEqual(state, fsm.CurrentState); }
public void CurrentState_IsSetToNewState_IfExplicitStateUpdateReturnsState() { var newState = new ExplicitState(); var state = Substitute.For <ExplicitState>(); state.Update().Returns(newState); var fsm = new FinitiStateMachine.FiniteStateMachine(state); fsm.Update(); Assert.AreEqual(newState, fsm.CurrentState); }
public void ExitState_IsCalled_ByTransition_IfStateIsDifferent() { var state = new ExplicitState(); var newState = new ExplicitState(); var fsm = new FinitiStateMachine.FiniteStateMachine(state); bool exitStateWasCalled = false; fsm.ExitState += () => exitStateWasCalled = true; fsm.Transition(newState); Assert.IsTrue(exitStateWasCalled); }