public void WhenCanHandleIsCalled_ThenExpectedResultIsReturned(string movement, bool expectedResult)
        {
            var advanceHandler = new AdvanceMovementHandler();
            var parsedMovement = (Movement)Enum.Parse(typeof(Movement), movement);

            var response = advanceHandler.CanHandleMovement(parsedMovement);

            response.Should().Be(expectedResult);
        }
        public void WhenAdvanceIsCalled_ThenOriginalDirectionIsReturned()
        {
            var originalDirection = CardinalPoint.S;
            var advanceHandler    = new AdvanceMovementHandler();
            var currenPosition    = new Position(new Coordinates {
                X = 5, Y = 3
            }, originalDirection);

            var newPosition = advanceHandler.HandleMovement(currenPosition, Movement.M);

            newPosition.Direction.ShouldBeEquivalentTo(originalDirection);
        }
        public void GivenWestDirection_WhenAdvanceIsCalled_ThenRobotGoesLeft()
        {
            var advancehandler = new AdvanceMovementHandler();
            var currenPosition = new Position(new Coordinates {
                Y = 10, X = 20
            }, CardinalPoint.W);

            var newPosition = advancehandler.HandleMovement(currenPosition, Movement.M);

            newPosition.Coordinates.ShouldBeEquivalentTo(new Coordinates {
                Y = 10, X = 19
            });
        }