public void UpdateTest()
        {
            TransitionCondition condition = Substitute.For <TransitionCondition>();

            stateMachine.AddTransition(Color.Red, Color.Blue, condition);

            stateMachine.Update();
            handler.Received().HandleState(Color.Red);
            handler.DidNotReceiveWithAnyArgs().OnStateEnter(Color.Red);
            handler.DidNotReceiveWithAnyArgs().OnStateExit(Color.Red);

            condition.IsFulfilled.Returns(true);
            stateMachine.Update();
            handler.Received().HandleState(Color.Red);
            handler.Received().OnStateExit(Color.Red);
            handler.Received().OnStateEnter(Color.Blue);
        }