コード例 #1
0
        public void Do_Not_Add_Repeated_State_Behaviours_On_Construction()
        {
            var stateBehaviour = Substitute.For <IStateBehaviour>();

            var state = new BehaviouralState(stateBehaviour, stateBehaviour);

            Assert.That(state.BehaviourCount == 1, "Only one state behaviour has been added");
        }
コード例 #2
0
        public void Keep_Iterating_When_A_Previous_Index_Is_Removed_On_Exit()
        {
            var stateBehaviour1 = Substitute.For <IStateBehaviour>();
            var stateBehaviour2 = Substitute.For <IStateBehaviour>();
            var stateBehaviour3 = Substitute.For <IStateBehaviour>();

            var state = new BehaviouralState(stateBehaviour1, stateBehaviour2, stateBehaviour3);

            stateBehaviour2.When(behaviour => behaviour.OnExit())
            .Do(callbackInfo => state.RemoveBehaviour(stateBehaviour1));

            state.Exit();

            stateBehaviour1.Received(1).OnExit();
            stateBehaviour2.Received(1).OnExit();
            stateBehaviour3.Received(1).OnExit();
        }
コード例 #3
0
        public void Keep_Iterating_When_A_Posterior_Index_Is_Removed_On_Update()
        {
            var stateBehaviour1 = Substitute.For <IStateBehaviour>();
            var stateBehaviour2 = Substitute.For <IStateBehaviour>();
            var stateBehaviour3 = Substitute.For <IStateBehaviour>();

            var state = new BehaviouralState(stateBehaviour1, stateBehaviour2, stateBehaviour3);

            stateBehaviour2.When(behaviour => behaviour.OnUpdate())
            .Do(callbackInfo => state.RemoveBehaviour(stateBehaviour3));

            state.Update();

            stateBehaviour1.Received(1).OnUpdate();
            stateBehaviour2.Received(1).OnUpdate();
            stateBehaviour3.DidNotReceive().OnUpdate();
        }
コード例 #4
0
 public void SetBehaviouralState(ushort val)
 {
     behaviour = (BehaviouralState)val;
 }