public void ShouldMoveRoverAlongXAccessIfFacingWest() { var rover = _fixture.Build <Rover.Core.Entities.Rover>() .With(x => x.RoverFacingDirection, Direction.West) .Create(); var roverActionCommand = new RoverActionCommand() { RoverAction = RoverAction.MoveForwardInTheDirectionRoverIsFacing, ActionExecutionOrder = 1 }; _roverActonToCoordinateTranslationService = new RoverActonToCoordinateTranslationService(new RoverActionToDirection()); var result = _roverActonToCoordinateTranslationService.Translate(rover, roverActionCommand); Assert.AreEqual(Direction.West, result.FacingDirection); Assert.AreEqual(rover.GridPosition.X - 1, result.XCoordinate); Assert.AreEqual(rover.GridPosition.Y, result.YCoordinate); }
public void ShouldReturnCommandForRoverToPointEastIfFacingNorthAndTurningRight() { var rover = _fixture.Build <Rover.Core.Entities.Rover>() .With(x => x.RoverFacingDirection, Direction.North) .Create(); var roverActionCommand = new RoverActionCommand() { RoverAction = RoverAction.TurnRight, ActionExecutionOrder = 1 }; _roverActonToCoordinateTranslationService = new RoverActonToCoordinateTranslationService(new RoverActionToDirection()); var result = _roverActonToCoordinateTranslationService.Translate(rover, roverActionCommand); Assert.AreEqual(Direction.East, result.FacingDirection); Assert.AreEqual(rover.GridPosition.X, result.XCoordinate); Assert.AreEqual(rover.GridPosition.Y, result.YCoordinate); }