Example #1
0
        public void CurrentState_IsSet_ByCtor()
        {
            var state = new ExplicitState();
            var fsm   = new FinitiStateMachine.FiniteStateMachine(state);

            Assert.AreEqual(state, fsm.CurrentState);
        }
Example #2
0
        public void ExplicitStateStateMachine_IsSet_ByCtor()
        {
            var state = new ExplicitState();
            var fsm   = new FinitiStateMachine.FiniteStateMachine(state);

            Assert.AreEqual(fsm, state.StateMachine);
        }
Example #3
0
        public void CurrentStateOnEnter_IsCalled_ByCtor()
        {
            var initialState = Substitute.For <ExplicitState>();
            var fsm          = new FinitiStateMachine.FiniteStateMachine(initialState);

            initialState.Received().OnEnter();
        }
Example #4
0
        public void CurrentStateUpdate_IsCalled_ByUpdate()
        {
            var state = Substitute.For <ExplicitState>();
            var fsm   = new FinitiStateMachine.FiniteStateMachine(state);

            fsm.Update();

            state.Received().Update();
        }
Example #5
0
        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));
        }
Example #6
0
        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);
        }
Example #7
0
        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();
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }