示例#1
0
        public void Sequence_MultipleRoutines()
        {
            var state = new State();

            var sequence = new Sequence(
                new TestRoutine(this),
                new TestRoutine(this),
                new TestRoutine(this)
                );

            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(3, this.TestInc);

            this.TestInc = 0;
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(6, this.TestInc);
        }
示例#2
0
        public void Sequence_OneRoutine()
        {
            var state = new State();

            var sequence = new Sequence(
                new TestRoutine(this)
                );

            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            Assert.Equal(1, this.TestInc);
            state.Reset();

            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            Assert.Equal(2, this.TestInc);
            state.Reset();

            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(5, this.TestInc);
        }
示例#3
0
        public void Sequence_Fail()
        {
            var state = new State();

            var sequence = new Sequence(
                new TestRoutine(this),
                new TestRoutine(this),
                new TestRoutine(this)
                );

            this.TestInc = 6;

            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Success, sequence.Act(state));
            state.Reset();
            Assert.Equal(RoutineStatus.Running, sequence.Act(state));
            Assert.Equal(RoutineStatus.Failure, sequence.Act(state));
            Assert.Equal(11, this.TestInc);
            Assert.Equal(RoutineStatus.Failure, sequence.Act(state));
            Assert.Equal(RoutineStatus.Failure, sequence.Act(state));
            Assert.Equal(11, this.TestInc);
        }