public void ReportTest_ArgumentNullException_1() { ToyRobotReportingService reportingService = new ToyRobotReportingService(); Robot robot = null; reportingService.Report(robot); }
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 ReportTest() { ToyRobotReportingService reportingService = new ToyRobotReportingService(); Robot robot = new Robot(); Position position = new Position(3, 3); Facing facing = Facing.NORTH; robot.Position = position; robot.Facing = facing; string result = reportingService.Report(robot); Assert.AreEqual("Output: 3,3,NORTH", result); }
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 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); }