public void ShouldRoverLaunchAsExpected(string roverCoordinate) { // arrange _mockPlateau.Setup(x => x.ValidateRoverPosition(It.IsAny <Point>())).Returns(true); var plateau = new MarsRover.Domain.Plateau(); var rover = new MarsRover.Domain.MarsRover(); // act var plateauSize = "0 0"; plateau.InitializePlateau(plateauSize); rover.Launch(_mockPlateau.Object, roverCoordinate); var roverPosition = roverCoordinate.Split(' '); int.TryParse(roverPosition[0], out int xPosition); int.TryParse(roverPosition[1], out int yPosition); var roverDirection = roverPosition[2][0]; _directionDict = new Dictionary <char, Direction> { { 'N', Direction.North }, { 'E', Direction.East }, { 'S', Direction.South }, { 'W', Direction.West } }; // assert Assert.AreEqual(rover.RoverPosition.X, xPosition); Assert.AreEqual(rover.RoverPosition.Y, yPosition); Assert.AreEqual(rover.RoverDirection, _directionDict[roverDirection]); }
public void ShouldRoverFinalCoordinatesBeValidAsExpected(string plateauSize, string roverCoordinate, string roverMovementCommands, int expectedXResult, int expectedYResult, Direction directionResult) { // arrange _mockPlateau.Setup(x => x.ValidateRoverPosition(It.IsAny <Point>())).Returns(true); var rover = new MarsRover.Domain.MarsRover(); // act rover.Launch(_mockPlateau.Object, roverCoordinate); rover.Move(roverMovementCommands); // assert Assert.NotNull(rover); Assert.NotNull(rover.RoverPosition); Assert.AreEqual(expectedXResult, rover.RoverPosition.X); Assert.AreEqual(expectedYResult, rover.RoverPosition.Y); Assert.AreEqual(directionResult, rover.RoverDirection); }