public void TestAnyTransitionEvents() { int event1Count = 0; State?event1From = null; State?event1To = null; FiniteStateMachine <State> fsm = new FiniteStateMachine <State>(); fsm.AddTransition(State.A, State.B); fsm.AddTransition(State.B, State.C); fsm.AddEventOnAnyTransition((from, to) => { event1From = from; event1To = to; event1Count++; }); fsm.Start(State.A); Assert.IsTrue(event1Count == 0); fsm.TransitionTo(State.B); Assert.IsTrue(event1Count == 1); Assert.IsTrue(event1From == State.A); Assert.IsTrue(event1To == State.B); fsm.TransitionTo(State.C); Assert.IsTrue(event1Count == 2); Assert.IsTrue(event1From == State.B); Assert.IsTrue(event1To == State.C); }