public async Task TestMoveRightAsync()
        {
            this.mockedBall      = new Mock <IBallModel>(MockBehavior.Default);
            this.mockedCharacter = new Mock <ICharacterModel>(MockBehavior.Default);
            this.mockedTimer     = new Mock <ITimerModel>(MockBehavior.Default);
            this.mockedScore     = new Mock <IScoreModel>(MockBehavior.Default);

            this.mockedTimer.Setup(mock => mock.GameOver).Returns(false);
            this.mockedCharacter.Setup(mock => mock.Blocked).Returns(false);
            this.mockedCharacter.SetupProperty(mock => mock.PositionX, 10);

            CharacterLogic characterLogic = new CharacterLogic(
                this.mockedBall.Object,
                this.mockedCharacter.Object,
                this.mockedScore.Object,
                this.mockedTimer.Object);

            characterLogic.MoveRight();
            await Task.Delay(1000);

            this.mockedCharacter.VerifySet(mock => mock.LeftFoot);
            this.mockedCharacter.VerifySet(mock => mock.RigthFoot);
            Assert.That(this.mockedCharacter.Object.PositionX, Is.EqualTo(15));
        }