Ejemplo n.º 1
0
        private static void ReceiveCommands(IRoverController controller)
        {
            while (true)
            {
                var instruction = GetInput();

                ICommand command = StringCommandParser(controller.Rover, instruction);
                if (command != null)
                {
                    controller.AddCommand(command);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }