public void Should_ThrowException_When_SendInvalidCommands(int[] areaBoundaries, string[] startPosition, string commands) { var roverBot = new RoverBot.Vehicles.Roverbot(areaBoundaries) { X = int.Parse(startPosition[0]), Y = int.Parse(startPosition[1]), Direction = (Direction)Enum.Parse(typeof(Direction), startPosition[2]) }; Action act = () => roverBot.Move(commands); act.Should().Throw <Exception>() .WithMessage("Invalid command! Command: P"); }
public void Should_ThrowException_When_RoverPositionIsOutOfDefinedBoundaries(int[] areaBoundaries, string[] startPosition, string commands) { var roverBot = new RoverBot.Vehicles.Roverbot(areaBoundaries) { X = int.Parse(startPosition[0]), Y = int.Parse(startPosition[1]), Direction = (Direction)Enum.Parse(typeof(Direction), startPosition[2]) }; Action act = () => roverBot.Move(commands); act.Should().Throw <Exception>() .WithMessage("The vehicle is out of defined boundaries. Vehicle points: (7, 4), Area Boundaries: (0,0) (4, 4)"); }
public void Should_RoverBotMovingAsExpected_When_SendValidCommands(int[] areaBoundaries, string[] startPosition, string commands, string[] expectedposition) { var roverBot = new RoverBot.Vehicles.Roverbot(areaBoundaries) { X = int.Parse(startPosition[0]), Y = int.Parse(startPosition[1]), Direction = (Direction)Enum.Parse(typeof(Direction), startPosition[2]) }; roverBot.Move(commands); roverBot.X.Should().Be(int.Parse(expectedposition[0])); roverBot.Y.Should().Be(int.Parse(expectedposition[1])); roverBot.Direction.Should().Be((Direction)Enum.Parse(typeof(Direction), expectedposition[2])); }