private static void ReceiveCommands(IRoverController controller) { while (true) { var instruction = GetInput(); ICommand command = StringCommandParser(controller.Rover, instruction); if (command != null) { controller.AddCommand(command); } } }
public void DoesRoverNavigateToExampleCorrectPositionAndHeading() { //Arrange & Act _roverController.AddCommand(new MoveCommand(_rover) { Distance = 50 }); _roverController.AddCommand(new RotateCommand(_rover) { Rotation = Rotate.Left }); _roverController.AddCommand(new MoveCommand(_rover) { Distance = 23 }); _roverController.AddCommand(new RotateCommand(_rover) { Rotation = Rotate.Left }); _roverController.AddCommand(new MoveCommand(_rover) { Distance = 4 }); //Assert Assert.AreEqual(24, _roverController.Rover.Location.X, 24); Assert.AreEqual(46, _roverController.Rover.Location.Y, 46); Assert.AreEqual(CardinalHeading.North, _roverController.Rover.Heading); }