public void PostTestSetupRover() { // Arrange var controller = new RoverController(); controller.Delete(); Rover rover1 = new Rover(1, 2, 'N'); Rover rover2 = new Rover(3, 3, 'E'); // Act var result1 = controller.Post(new CommandBody { Command = rover1.ToString(), Type = CommandType.SetupRover }); var result2 = controller.Post(new CommandBody { Command = rover2.ToString(), Type = CommandType.SetupRover }); // Assert Assert.AreEqual(rover1.ToString(), result1); Assert.AreEqual(rover2.ToString(), result2); }
public void DeleteTest() { // Arrange var controller = new RoverController(); controller.Post(new CommandBody { Command = "5 5", Type = CommandType.SetupPlateau }); controller.Post(new CommandBody { Command = "1 2 N", Type = CommandType.SetupRover }); controller.Post(new CommandBody { Command = "LMLMLMLMM", Type = CommandType.Move }); var beforeCount = controller.Get().Count; // Act controller.Delete(); var afterCount = controller.Get().Count; // Assert Assert.IsTrue(beforeCount > 0, "Before count should be more than zero"); Assert.AreEqual(0, afterCount); }
public void PostTestSetupPlateau() { // Arrange var controller = new RoverController(); controller.Delete(); int plateauX = 5; int plateauY = 5; int plateauX2 = 24; int plateauY2 = 13; string expected = "0 0 -> 5 5"; string expected2 = "0 0 -> 24 13"; // Act var result = controller.Post(new CommandBody { Command = $"{plateauX} {plateauY}", Type = CommandType.SetupPlateau }); var result2 = controller.Post(new CommandBody { Command = $"{plateauX2} {plateauY2}", Type = CommandType.SetupPlateau }); // Assert Assert.AreEqual(expected, result); Assert.AreEqual(expected2, result2); }
public void GetTestWithId() { // Arrange var controller = new RoverController(); controller.Delete(); HistoryRecord expectedRecord1 = new HistoryRecord { Command = "0 0 -> 5 5", Input = false }; HistoryRecord expectedRecord2 = new HistoryRecord { Command = "5 1 E", Input = false }; HistoryRecord expectedRecord3 = null; // Act controller.Post(new CommandBody { Command = "5 5", Type = CommandType.SetupPlateau }); controller.Post(new CommandBody { Command = "1 2 N", Type = CommandType.SetupRover }); controller.Post(new CommandBody { Command = "LMLMLMLMM", Type = CommandType.Move }); controller.Post(new CommandBody { Command = "3 3 E", Type = CommandType.SetupRover }); controller.Post(new CommandBody { Command = "MMRMMRMRRM", Type = CommandType.Move }); var record1 = controller.Get(1); var record2 = controller.Get(9); var record3 = controller.Get(10); // Assert Assert.AreEqual(expectedRecord1, record1); Assert.AreEqual(expectedRecord2, record2); Assert.AreEqual(expectedRecord3, record3); }
public void Return_Success_Result_For_Given_Rover() { // Arrange List <RoverRequest> roverInfoReq = new List <RoverRequest> { new RoverRequest { Name = "Rover1", Instructions = "MRM" } }; List <RoverResponse> roverInfoResp = new List <RoverResponse> { new RoverResponse { Name = "Rover1", NewPositions = new int[] { 2, 1 }, Message = "Success" } }; var robotCreator = new Mock <IRobotCreator>(); robotCreator.Setup(repo => repo.CreateAndMoveRobots(roverInfoReq, new int[5, 5])).Returns(roverInfoResp); var sut = new RoverController(robotCreator.Object); //Act var result = sut.Post(roverInfoReq); //Assert Assert.IsNotNull(result); var okResult = result as OkObjectResult; Assert.IsNotNull(okResult); Assert.IsInstanceOfType(result, typeof(IActionResult)); }
public void PostTestMove() { // Arrange var controller = new RoverController(); controller.Delete(); string moveResultEx1 = "1 3 N"; string moveResultEx2 = "5 1 E"; // Act controller.Post(new CommandBody { Command = "5 5", Type = CommandType.SetupPlateau }); controller.Post(new CommandBody { Command = "1 2 N", Type = CommandType.SetupRover }); string moveResult1 = controller.Post(new CommandBody { Command = "LMLMLMLMM", Type = CommandType.Move }); controller.Post(new CommandBody { Command = "3 3 E", Type = CommandType.SetupRover }); string moveResult2 = controller.Post(new CommandBody { Command = "MMRMMRMRRM", Type = CommandType.Move }); // Assert Assert.AreEqual(moveResultEx1, moveResult1); Assert.AreEqual(moveResultEx2, moveResult2); }
public void PostTestBadCommands() { // Arrange var controller = new RoverController(); controller.Delete(); string bad = "test"; string badExpected = "Bad Command Type: 0"; string moveExpected = "Malformed move command: test"; string plateauExpected = "Malformed Plateau command: test"; string roverExpected = "Malformed Rover command: test"; // Act string badActual = controller.Post(new CommandBody { Command = bad, Type = 0 }); string moveActual = controller.Post(new CommandBody { Command = bad, Type = CommandType.Move }); string plateauActual = controller.Post(new CommandBody { Command = bad, Type = CommandType.SetupPlateau }); string roverActual = controller.Post(new CommandBody { Command = bad, Type = CommandType.SetupRover }); // Assert Assert.AreEqual(badExpected, badActual); Assert.AreEqual(moveExpected, moveActual); Assert.AreEqual(plateauExpected, plateauActual); Assert.AreEqual(roverExpected, roverActual); }
public void GetTest() { // Arrange var controller = new RoverController(); controller.Delete(); List <HistoryRecord> expectedHistory = new List <HistoryRecord> { new HistoryRecord { Command = "5 5", Input = true }, new HistoryRecord { Command = "0 0 -> 5 5", Input = false }, new HistoryRecord { Command = "1 2 N", Input = true }, new HistoryRecord { Command = "1 2 N", Input = false }, new HistoryRecord { Command = "LMLMLMLMM", Input = true }, new HistoryRecord { Command = "1 3 N", Input = false }, new HistoryRecord { Command = "3 3 E", Input = true }, new HistoryRecord { Command = "3 3 E", Input = false }, new HistoryRecord { Command = "MMRMMRMRRM", Input = true }, new HistoryRecord { Command = "5 1 E", Input = false } }; // Act controller.Post(new CommandBody { Command = "5 5", Type = CommandType.SetupPlateau }); controller.Post(new CommandBody { Command = "1 2 N", Type = CommandType.SetupRover }); controller.Post(new CommandBody { Command = "LMLMLMLMM", Type = CommandType.Move }); controller.Post(new CommandBody { Command = "3 3 E", Type = CommandType.SetupRover }); controller.Post(new CommandBody { Command = "MMRMMRMRRM", Type = CommandType.Move }); var history = controller.Get(); // Assert Assert.AreEqual(expectedHistory.Count, history.Count); for (int i = 0; i < history.Count; i++) { Assert.AreEqual(expectedHistory[i], history[i]); } }