Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GuardTest"/> class.
 /// </summary>
 public GuardTest()
 {
     this.testee = new StateMachine <StateMachine.States, StateMachine.Events>();
 }
Esempio n. 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="StateMachineTest"/> class.
        /// </summary>
        public StateMachineTest()
        {
            this.records = new List <Record>();

            this.testee = new StateMachine <StateMachine.States, StateMachine.Events>();

            this.testee.DefineHierarchyOn(StateMachine.States.B)
            .WithHistoryType(HistoryType.None)
            .WithInitialSubState(StateMachine.States.B1)
            .WithSubState(StateMachine.States.B2);

            this.testee.DefineHierarchyOn(StateMachine.States.C)
            .WithHistoryType(HistoryType.Shallow)
            .WithInitialSubState(StateMachine.States.C2)
            .WithSubState(StateMachine.States.C1);

            this.testee.DefineHierarchyOn(StateMachine.States.C1)
            .WithHistoryType(HistoryType.Shallow)
            .WithInitialSubState(StateMachine.States.C1A)
            .WithSubState(StateMachine.States.C1B);

            this.testee.DefineHierarchyOn(StateMachine.States.D)
            .WithHistoryType(HistoryType.Deep)
            .WithInitialSubState(StateMachine.States.D1)
            .WithSubState(StateMachine.States.D2);

            this.testee.DefineHierarchyOn(StateMachine.States.D1)
            .WithHistoryType(HistoryType.Deep)
            .WithInitialSubState(StateMachine.States.D1A)
            .WithSubState(StateMachine.States.D1B);

            this.testee.In(StateMachine.States.A)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.A))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.A))
            .On(StateMachine.Events.B).Goto(StateMachine.States.B)
            .On(StateMachine.Events.C).Goto(StateMachine.States.C)
            .On(StateMachine.Events.D).Goto(StateMachine.States.D)
            .On(StateMachine.Events.A);

            this.testee.In(StateMachine.States.B)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.B))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.B))
            .On(StateMachine.Events.D).Goto(StateMachine.States.D);

            this.testee.In(StateMachine.States.B1)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.B1))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.B1))
            .On(StateMachine.Events.B2).Goto(StateMachine.States.B2);

            this.testee.In(StateMachine.States.B2)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.B2))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.B2))
            .On(StateMachine.Events.A).Goto(StateMachine.States.A)
            .On(StateMachine.Events.C1B).Goto(StateMachine.States.C1B);

            this.testee.In(StateMachine.States.C)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.C))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.C))
            .On(StateMachine.Events.A).Goto(StateMachine.States.A);

            this.testee.In(StateMachine.States.C1)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.C1))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.C1))
            .On(StateMachine.Events.C1B).Goto(StateMachine.States.C1B);

            this.testee.In(StateMachine.States.C2)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.C2))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.C2));

            this.testee.In(StateMachine.States.C1A)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.C1A))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.C1A));

            this.testee.In(StateMachine.States.C1B)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.C1B))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.C1B));

            this.testee.In(StateMachine.States.D)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.D))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.D));

            this.testee.In(StateMachine.States.D1)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.D1))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.D1));

            this.testee.In(StateMachine.States.D1A)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.D1A))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.D1A));

            this.testee.In(StateMachine.States.D1B)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.D1B))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.D1B))
            .On(StateMachine.Events.A).Goto(StateMachine.States.A)
            .On(StateMachine.Events.B1).Goto(StateMachine.States.B1);

            this.testee.In(StateMachine.States.D2)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.D2))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.D2))
            .On(StateMachine.Events.A).Goto(StateMachine.States.A);

            this.testee.In(StateMachine.States.E)
            .ExecuteOnEntry(() => this.RecordEntry(StateMachine.States.E))
            .ExecuteOnExit(() => this.RecordExit(StateMachine.States.E))
            .On(StateMachine.Events.A).Goto(StateMachine.States.A)
            .On(StateMachine.Events.E).Goto(StateMachine.States.E);
        }
 public StateActionTest()
 {
     this.testee = new StateMachine <StateMachine.States, StateMachine.Events>();
 }