示例#1
0
    //!	@brief	FSMシステムテスト
    //!	@return	なし
    [Test] public void FSMSystemTest()
    {
        var log = new StringBuilder();
        var fsm = new FSMSystem();

        fsm.initialize(new IFSMState[] {
            new FSMTestState(State.Test0, log),
            new FSMTestStateToNext(State.Test1, log),
            new FSMTestState(State.Test2, log),
        });

        fsm.execute();

        log.AppendLine("setNextState(" + State.Test0 + ")");
        fsm.setNextState(State.Test0);
        fsm.execute();

        log.AppendLine("setNextState(" + State.Test1 + ")");
        fsm.setNextState(State.Test1);
        fsm.execute();

        fsm.execute();

        var testResult = new StringBuilder()
                         .AppendLine(State.Test0 + ".entry")
                         .AppendLine(State.Test0 + ".exec")
                         .AppendLine("setNextState(" + State.Test0 + ")")
                         .AppendLine(State.Test0 + ".exec")
                         .AppendLine("setNextState(" + State.Test1 + ")")
                         .AppendLine(State.Test0 + ".exit")
                         .AppendLine(State.Test1 + ".entry")
                         .AppendLine(State.Test1 + ".exec")
                         .AppendLine(State.Test1 + ".exit")
                         .AppendLine(State.Test2 + ".entry")
                         .AppendLine(State.Test2 + ".exec")
        ;

        Assert.AreEqual(testResult.ToString(), log.ToString());
    }