/// <summary> /// Initializes a new instance of the <see cref="GuardTest"/> class. /// </summary> public GuardTest() { this.testee = new StateMachine <StateMachine.States, StateMachine.Events>(); }
/// <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>(); }