public void MoveTest_ArgumentOutOfRangeException() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = new TableTop(5, 6); movingService.Move(robot, table); }
public void MoveTest_ArgumentNullException_2() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = null; movingService.Move(robot, table); }
public void PlaceTest_ArgumentNullException_3() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = new TableTop(5, 6); Position position = null; Facing facing = Facing.EAST; movingService.Place(robot, table, position, facing); }
public void RobotSimulatorTest_ArgumentNullException_5() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = null; RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); }
public void PlaceTest_Invalid() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = new TableTop(5, 6); //Setup Robot to a valid Position first Position position = new Position(1, 1); Facing facing = Facing.EAST; bool result = movingService.Place(robot, table, position, facing); //Test 1 position = new Position(-1, 1); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 2 position = new Position(1, -1); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 3 position = new Position(6, 1); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 4 position = new Position(1, 6); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 5 position = new Position(-3, -3); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 6 position = new Position(7, 7); result = movingService.Place(robot, table, position, facing); Assert.AreEqual(false, result); //Test 7: if the Position keep unchanged Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(1, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); }
public void PlaceTest() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); bool result = simulator.Place(new Position(7, 7), Facing.EAST); Assert.IsNull(robot.Position); Assert.IsFalse(result); result = simulator.Place(new Position(3, 3), Facing.EAST); Assert.IsTrue(result); Assert.AreEqual(3, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); Assert.AreEqual(Facing.EAST, robot.Facing); }
public void ReportTest() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); string result = simulator.Report(); Assert.IsNull(result); Assert.IsNull(robot.Position); simulator.Place(new Position(3, 3), Facing.EAST); result = simulator.Report(); Assert.AreEqual("Output: 3,3,EAST", result); }
static void Main(string[] args) { Robot robot = new Robot(); TableTop table = new SquareTableTop(5); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); RobotSimulatorCommandLineParser parser = new RobotSimulatorCommandLineParser(); RobotSimulatorCommandController controler = new RobotSimulatorCommandController(simulator); while (true) { string input = Console.ReadLine(); Command command = parser.Parsing(input); if (command != null) { controler.Run(command); } } }
public void TurnRightTest() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); Facing defaultFacing = robot.Facing; simulator.TurnRight(); Assert.AreEqual(defaultFacing, robot.Facing); Assert.IsNull(robot.Position); simulator.Place(new Position(3, 3), Facing.EAST); simulator.TurnRight(); Assert.AreEqual(3, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); Assert.AreEqual(Facing.SOUTH, robot.Facing); }
public void MoveTest_Valid() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = new TableTop(5, 6); //Test 1 Position position = new Position(1, 1); Facing facing = Facing.EAST; robot.Position = position; robot.Facing = facing; bool result = movingService.Move(robot, table); //Robot move east from 1,1 //expect new Position is 2,1 Assert.AreEqual(true, result); Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(2, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 2 position = new Position(0, 1); facing = Facing.SOUTH; robot.Position = position; robot.Facing = facing; result = movingService.Move(robot, table); //Robot move SOUTH from 0,1 //expect new Position is 0,0 Assert.AreEqual(true, result); Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 3 position = new Position(1, 0); facing = Facing.WEST; robot.Position = position; robot.Facing = facing; result = movingService.Move(robot, table); //Robot move west from 1,0 //expect new Position is 0,0 Assert.AreEqual(true, result); Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 position = new Position(3, 5); facing = Facing.EAST; robot.Position = position; robot.Facing = facing; result = movingService.Move(robot, table); //Robot move east from 3,5 //expect new Position is 4,5 Assert.AreEqual(true, result); Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Test 5 position = new Position(4, 4); facing = Facing.NORTH; robot.Position = position; robot.Facing = facing; result = movingService.Move(robot, table); //Robot move NORTH from 4,4 //expect new Position is 4,5 Assert.AreEqual(true, result); Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); }
public void PlaceTest_Valid() { ToyRobotMovingService movingService = new ToyRobotMovingService(); Robot robot = new Robot(); TableTop table = new TableTop(5, 6); //Test 1 Position position = new Position(1, 1); Facing facing = Facing.EAST; bool result = movingService.Place(robot, table, position, facing); //expect new Position is 1,1 Assert.AreEqual(true, result); Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(1, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 2 position = new Position(0, 0); facing = Facing.NORTH; robot.Position = position; robot.Facing = facing; result = movingService.Place(robot, table, position, facing); //expect new Position is 0,0 Assert.AreEqual(true, result); Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 3 position = new Position(4, 0); facing = Facing.WEST; robot.Position = position; robot.Facing = facing; result = movingService.Place(robot, table, position, facing); //expect new Position is 4,0 Assert.AreEqual(true, result); Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 position = new Position(4, 5); facing = Facing.EAST; robot.Position = position; robot.Facing = facing; result = movingService.Place(robot, table, position, facing); //expect new Position is 4,5 Assert.AreEqual(true, result); Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Test 5 position = new Position(0, 5); facing = Facing.SOUTH; robot.Position = position; robot.Facing = facing; result = movingService.Place(robot, table, position, facing); //expect new Position is 0,5 Assert.AreEqual(true, result); Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); }
public void RobotSimulatorCommandControllerTest() { Robot robot = new Robot(); TableTop table = new SquareTableTop(5); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); RobotSimulatorCommandController controler = new RobotSimulatorCommandController(simulator); controler.Run(new Command_Left()); controler.Run(new Command_Right()); controler.Run(new Command_Move()); controler.Run(new Command_Place(new Position(5, 5), Facing.EAST)); Assert.IsNull(robot.Position); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); Console.SetOut(sw); string startPoint = sb.ToString(); controler.Run(new Command_Report()); string middleAPoint = sb.ToString(); Assert.AreEqual(startPoint, middleAPoint); controler.Run(new Command_Place(new Position(3, 3), Facing.EAST)); Assert.AreEqual(3, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); Assert.AreEqual(Facing.EAST, robot.Facing); controler.Run(new Command_Report()); string middleBPoint = sb.ToString(); string expectedString = "Output: 3,3,EAST" + System.Environment.NewLine; Assert.AreEqual(expectedString, middleBPoint); controler.Run(new Command_Left()); Assert.AreEqual(Facing.NORTH, robot.Facing); controler.Run(new Command_Left()); Assert.AreEqual(Facing.WEST, robot.Facing); controler.Run(new Command_Left()); Assert.AreEqual(Facing.SOUTH, robot.Facing); controler.Run(new Command_Left()); Assert.AreEqual(Facing.EAST, robot.Facing); controler.Run(new Command_Right()); Assert.AreEqual(Facing.SOUTH, robot.Facing); controler.Run(new Command_Right()); Assert.AreEqual(Facing.WEST, robot.Facing); controler.Run(new Command_Right()); Assert.AreEqual(Facing.NORTH, robot.Facing); controler.Run(new Command_Right()); Assert.AreEqual(Facing.EAST, robot.Facing); controler.Run(new Command_Move()); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); controler.Run(new Command_Move()); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); }
public void MoveTest() { Robot robot = new Robot(); TableTop table = new TableTop(5, 6); IRobotMovingService movingService = new ToyRobotMovingService(); IRobotReportingService reportingService = new ToyRobotReportingService(); IRobotTurningService turningService = new ToyRobotTurningService(); RobotSimulator simulator = new RobotSimulator(robot, table, movingService, turningService, reportingService); simulator.Move(); Assert.IsNull(robot.Position); simulator.Place(new Position(3, 3), Facing.EAST); simulator.Move(); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(3, robot.Position.Y); Assert.AreEqual(Facing.EAST, robot.Facing); //Invalid moving, position of robot should not been changed. //Test 1 simulator.Place(new Position(0, 0), Facing.SOUTH); simulator.Move(); //Robot move SOUTH from 0,0 //expect new Position is 0,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 2 simulator.Place(new Position(0, 1), Facing.WEST); simulator.Move(); //Robot move WEST from 0,1 //expect new Position is 0,0 Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 3 simulator.Place(new Position(1, 0), Facing.SOUTH); simulator.Move(); //Robot move NORTH from 1,0 //expect new Position is 1,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(1, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 simulator.Place(new Position(4, 2), Facing.EAST); simulator.Move(); //Robot move east from 4,2 //expect new Position is 4,2 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(2, robot.Position.Y); //Test 5 simulator.Place(new Position(3, 5), Facing.NORTH); simulator.Move(); //Robot move south from 3,5 //expect new Position is 3,5 Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(3, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Valid moving, position of robot should been changed. //Test 1 simulator.Place(new Position(1, 1), Facing.EAST); simulator.Move(); //Robot move east from 1,1 //expect new Position is 2,1 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(2, robot.Position.X); Assert.AreEqual(1, robot.Position.Y); //Test 2 simulator.Place(new Position(0, 1), Facing.SOUTH); simulator.Move(); //Robot move SOUTH from 0,1 //expect new Position is 0,0 Assert.AreEqual(Facing.SOUTH, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 3 simulator.Place(new Position(1, 0), Facing.WEST); simulator.Move(); //Robot move west from 1,0 //expect new Position is 0,0 Assert.AreEqual(Facing.WEST, robot.Facing); Assert.AreEqual(0, robot.Position.X); Assert.AreEqual(0, robot.Position.Y); //Test 4 simulator.Place(new Position(3, 5), Facing.EAST); simulator.Move(); //Robot move east from 3,5 //expect new Position is 4,5 Assert.AreEqual(Facing.EAST, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); //Test 5 simulator.Place(new Position(4, 4), Facing.NORTH); simulator.Move(); //Robot move NORTH from 4,4 //expect new Position is 4,5 Assert.AreEqual(Facing.NORTH, robot.Facing); Assert.AreEqual(4, robot.Position.X); Assert.AreEqual(5, robot.Position.Y); }