public void TransitionNotFoundRaisedWhenTransitionNotFoundOnChild() { var sm = new StateMachine("sm"); var initial = sm.CreateInitialState("initial"); var state1 = sm.CreateState("state 1"); var child = initial.CreateChildStateMachine(); var childInitial = child.CreateInitialState("childInitial"); var evt = new Event("evt"); state1.InnerSelfTransitionOn(evt); TransitionNotFoundEventArgs <State> ea = null; sm.TransitionNotFound += (o, e) => { ea = e; }; evt.TryFire(); Assert.NotNull(ea); Assert.AreEqual(evt, ea.Event); Assert.AreEqual(initial, ea.From); Assert.AreEqual(sm, ea.StateMachine); Assert.AreEqual(EventFireMethod.TryFire, ea.EventFireMethod); }
public void TransitionNotFoundRaisedWhenTransitionNotFoundOnParent() { var sm = new StateMachine("sm"); var initial = sm.CreateInitialState("initial"); var evt = sm.CreateEvent("evt"); TransitionNotFoundEventArgs <State> ea = null; sm.TransitionNotFound += (o, e) => { ea = e; }; evt.TryFire(); Assert.NotNull(ea); Assert.AreEqual(evt, ea.Event); Assert.AreEqual(initial, ea.From); }
public void RecursiveFireRaisesTransitionNotFoundEvent() { var sm = new StateMachine("sm"); var initialState = sm.CreateInitialState("initialState"); var state1 = sm.CreateState("state1"); var evt = new Event("evt"); var evt2 = new Event("evt2"); TransitionNotFoundEventArgs <State> ea = null; sm.TransitionNotFound += (o, e) => ea = e; initialState.TransitionOn(evt).To(state1).WithHandler(i => evt2.Fire()); initialState.InnerSelfTransitionOn(evt2); try { evt.TryFire(); } catch (TransitionNotFoundException) { } Assert.NotNull(ea); Assert.AreEqual(evt2, ea.Event); Assert.AreEqual(state1, ea.From); Assert.AreEqual(sm, ea.StateMachine); Assert.AreEqual(EventFireMethod.Fire, ea.EventFireMethod); }
public void RecursiveTryFireRaisesTransitionNotFoundEvent() { var sm = new StateMachine("sm"); var initialState = sm.CreateInitialState("initialState"); var state1 = sm.CreateState("state1"); var evt = new Event("evt"); var evt2 = new Event("evt2"); TransitionNotFoundEventArgs <State> ea = null; sm.TransitionNotFound += (o, e) => ea = e; initialState.TransitionOn(evt2).To(initialState); initialState.TransitionOn(evt).To(state1).WithHandler(i => { evt2.TryFire(); }); evt.Fire(); Assert.NotNull(ea); Assert.AreEqual(state1, ea.From); Assert.AreEqual(evt2, ea.Event); }
private void OnTransitionNotFound(object sender, TransitionNotFoundEventArgs<State> eventArgs) { var handler = this.TransitionNotFound; if (handler != null) handler(this, eventArgs); }