public void TestPushStateTransition()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         runtime.CreateActor(typeof(M1), null, op);
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("InitOnEntry, CurrentState=Final, OnFinal", actual);
     });
 }
Beispiel #2
0
 public void TestReceiveEventStatementWithMultipleTypes()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M3), null, op);
         runtime.SendEvent(id, new E2());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("Receiving, Received:E2", actual);
     });
 }
 public void TestGotoStateTransitionAfterSend()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M2), null, op);
         runtime.SendEvent(id, new Message());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("InitOnEntry, CurrentState=Final, FinalOnEntry", actual);
     });
 }
Beispiel #4
0
 public void TestClassEventHandlerWildcardOverride()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M4), null, op);
         runtime.SendEvent(id, new E1());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("HandleWildCard", actual);
     });
 }
Beispiel #5
0
 public void TestClassEventHandlerDeferOverride()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M3), null, op);
         runtime.SendEvent(id, new E1());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("OnInitEntry, CurrentState=Active, HandleActiveE1", actual);
     });
 }
Beispiel #6
0
 public void TestHandleEventInStateMachine()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M1), null, op);
         runtime.SendEvent(id, new E1());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("InitOnEntry, HandleE1", actual);
     });
 }
 public void TestInheritedDuplicateDeferHandler()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M9), null, op);
         runtime.SendEvent(id, new E1()); // should be deferred
         runtime.SendEvent(id, new E2()); // should be ignored
         runtime.SendEvent(id, new E3()); // should trigger goto, where deferred E1 can be handled.
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("CurrentState=Final, HandleEvent:E1", actual);
     });
 }
 public void TestPushStateInheritance()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M5), null, op);
         runtime.SendEvent(id, new E2()); // should be deferred
         runtime.SendEvent(id, new E1()); // push
         runtime.SendEvent(id, new E3()); // ignored
         runtime.SendEvent(id, new E4()); // inherited handler
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         Assert.Equal("CurrentState=Final, HandleEvent, FinalEvent", actual);
     });
 }
 public void TestPushPopTransition()
 {
     this.Test(async(IActorRuntime runtime) =>
     {
         var op = new EventGroupList();
         var id = runtime.CreateActor(typeof(M4), null, op);
         runtime.SendEvent(id, new E1());
         runtime.SendEvent(id, new E2());
         await this.GetResultAsync(op.Task);
         var actual = op.ToString();
         // the CurrentState=Init that happens as a result of Pop is timing sensitive and
         // there is no state machine call back to tell us when this happens, so we just use
         // a Contains test here to deal with that non-determinism.
         Assert.Contains("InitOnEntry, CurrentState=Final, Pop", actual);
     });
 }
Beispiel #10
0
 public override void EventCtrl()
 {
     EventGroupList.ForEach(a => a.Update(this));
     EventsExecutionList.ForEach(a => a.Update(this));
 }
 private void Start()
 {
     relationshipsController = FindObjectOfType <RelationshipsController>();
     _eventGroupList         = JsonUtility.FromJson <EventGroupList>(jsonEventList.text);
 }