public void ReturnDirectionAccordingly(char directionInfo, Type expectedType) { var result = DirectionFactory.GetDirection(directionInfo); Assert.NotNull(result); Assert.Equal(expectedType, result.GetType()); }
public void ThrowInvalidDirectionExceptionWhenDirectionInfoIsInvalid() { char directionInfo = 'X'; var result = Record.Exception(() => DirectionFactory.GetDirection(directionInfo)); Assert.NotNull(result); Assert.IsType <InvalidDirectionException>(result); }
public void ThrowOutOfPlateauExceptionWhenMoveToNewCoordinatesExceedsBorders() { DirectionClass direction = DirectionFactory.GetDirection('S'); var result = Record.Exception(() => borderStrategy.MoveToNewCoordinates(coordinates, direction)); Assert.NotNull(result); Assert.IsType <OutOfPlateauException>(result); }
public void MoveToCoordinatesWhenMoveToNewCoordinatesStaysInBorders() { DirectionClass direction = DirectionFactory.GetDirection('N'); var result = borderStrategy.MoveToNewCoordinates(coordinates, direction); int expectedCoordX = 0; int expectedCoordY = 1; Assert.NotNull(result); Assert.Equal(expectedCoordX, result.coordX); Assert.Equal(expectedCoordY, result.coordY); }
public void WaitAtTheBorderWhenMoveToNewCoordinatesExceedsBorders() { DirectionClass direction = DirectionFactory.GetDirection('S'); var result = borderStrategy.MoveToNewCoordinates(coordinates, direction); int expectedCoordX = 0; int expectedCoordY = 0; Assert.NotNull(result); Assert.Equal(expectedCoordX, result.coordX); Assert.Equal(expectedCoordY, result.coordY); }
/// <summary> /// Returns new instance of a Rover object /// </summary> /// <param name="coordX">Rover's starting coordinate on the X axis</param> /// <param name="coordY">Rover's starting coordinate on the Y axis</param> /// <param name="directionInfo">Rover's facing direction</param> /// <param name="chosenBorderStrategy">Chosen BorderStrategy for the Rover</param> /// <returns>New instance of a Rover object</returns> public static Rover GetNewRover(int coordX, int coordY, char directionInfo, BorderStrategy chosenBorderStrategy) { if (coordX < chosenBorderStrategy.lowerBoundryBorderCoordinates.coordX || coordY < chosenBorderStrategy.lowerBoundryBorderCoordinates.coordY || coordX > chosenBorderStrategy.upperBoundryBorderCoordinates.coordX || coordY > chosenBorderStrategy.upperBoundryBorderCoordinates.coordY) { throw new OutOfPlateauException(); } Rover NewRover = new Rover { currentDirection = DirectionFactory.GetDirection(directionInfo), chosenBorderStrategy = chosenBorderStrategy, currentCoordinates = new Coordinates(coordX, coordY) }; return(NewRover); }