Пример #1
0
        public void ChangeStateTest()
        {
            StateMachine sm = new StateMachine(); // TODO: 初始化为适当的值

            Assert.IsNull(sm.GetState());
            var state1 = new State1();

            //测试基本changestate
            sm.ChangeState(state1);
            Assert.AreSame(state1, sm.GetState());
            Assert.AreEqual(state1.ToString(), "S1Enter");

            //测试对同一个state设置
            sm.ChangeState(state1);
            Assert.AreSame(state1, sm.GetState());
            Assert.AreEqual(state1.ToString(), "S1Enter");

            sm.Update();


            var state2 = sm.GetState();

            Assert.AreNotSame(state1, state2);
            Assert.AreEqual(state1.ToString(), "S1");
            Assert.AreEqual(state2.ToString(), "S2Enter");
        }
Пример #2
0
        public RepeatStateTree2(Player startPlayer = Player.Max)
        {
            A.CallTo(() => EndState1.ToString()).Returns(nameof(EndState1));
            A.CallTo(() => State1.ToString()).Returns(nameof(State1));
            A.CallTo(() => State2.ToString()).Returns(nameof(State2));
            A.CallTo(() => State2.ToString()).Returns(nameof(State3));
            A.CallTo(() => RootState.ToString()).Returns(nameof(RootState));


            A.CallTo(() => RootState.Turn).Returns(startPlayer);
            A.CallTo(() => State1.Turn).Returns(startPlayer.GetReversePlayer());
            A.CallTo(() => State2.Turn).Returns(startPlayer.GetReversePlayer());
            A.CallTo(() => State3.Turn).Returns(startPlayer);
            A.CallTo(() => EndState1.Turn).Returns(startPlayer.GetReversePlayer());

            RootState.SetNeigbors(State1, State2);
            EndState1.SetAsEndState();
            State1.SetNeigbor(State3);
            State2.SetNeigbor(State3);
            State3.SetNeigbor(EndState1);
        }
        public void ChangeStateTest()
        {
            StateMachine sm = new StateMachine(); // TODO: 初始化为适当的值
            Assert.IsNull(sm.GetState());
            var state1 = new State1();

            //测试基本changestate
            sm.ChangeState(state1);
            Assert.AreSame(state1, sm.GetState());
            Assert.AreEqual(state1.ToString(), "S1Enter");
            
            //测试对同一个state设置
            sm.ChangeState(state1);
            Assert.AreSame(state1, sm.GetState());
            Assert.AreEqual(state1.ToString(), "S1Enter");

            sm.Update();
            

            var state2 = sm.GetState();
            Assert.AreNotSame(state1, state2);
            Assert.AreEqual(state1.ToString(), "S1");
            Assert.AreEqual(state2.ToString(), "S2Enter");
        }