public void TransitionToAnotherState() { FSM fsm = new FSM(); FSMState state1 = new FSMState(fsm); FSMState state2 = new FSMState(fsm); FSMState state3 = new FSMState(fsm); FSMConnection connection = new FSMConnection(state2, state3, fsm); connection.SetCondition(new PassAfterNthTime(3)); state1.ConectTo(state2); fsm.SetFirstNode(state1); fsm.Start(); for (int i = 0; i < 4; i++) { fsm.Update(); } Assert.AreEqual(state3, fsm.CurrentState); }