Exemplo n.º 1
0
 public void RoverEngine_Constructor_NoObstacleDetector_ArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var engine = new RoverEngine(5, 5, EDirection.N, 3, 3, null);
     });
 }
Exemplo n.º 2
0
        public Discovery(IRover rover, List <ICommand> commands, ICommandExecutor commandExecutor)
        {
            Rover    = rover;
            Commands = commands;
            IRoverEngine roverEngine = new RoverEngine(rover, commandExecutor);

            roverEngine.Start(Commands);
        }
Exemplo n.º 3
0
        public void shouldReturnTrueIfCommandsValidForRCommand()
        {
            RoverEngine roverEngine = new RoverEngine();

            bool isValid = roverEngine.isCommandValid('R');

            Assert.True(isValid);
        }
Exemplo n.º 4
0
        public void shouldReturnFalseIfCommandsNotValid()
        {
            RoverEngine roverEngine = new RoverEngine();

            bool isValid = roverEngine.isCommandValid('P');

            Assert.False(isValid);
        }
Exemplo n.º 5
0
        public void RoverEngine_MoveBack_From11N_To10N()
        {
            var engine = new RoverEngine(1, 1, EDirection.N, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            var moveResult = engine.MoveBack();

            Assert.AreEqual(1, moveResult.Position.X);
            Assert.AreEqual(0, moveResult.Position.Y);
            Assert.AreEqual(EDirection.N, moveResult.Position.Direction);
        }
Exemplo n.º 6
0
        public void RoverEngine_MoveForward_From11W_To01W()
        {
            var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            var moveResult = engine.MoveForward();

            Assert.AreEqual(0, moveResult.Position.X);
            Assert.AreEqual(1, moveResult.Position.Y);
            Assert.AreEqual(EDirection.W, moveResult.Position.Direction);
        }
Exemplo n.º 7
0
        public void RoverEngine_Initialise()
        {
            var engine = new RoverEngine(5, 2, EDirection.S, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            var position = engine.GetPosition();

            Assert.AreEqual(5, position.X);
            Assert.AreEqual(2, position.Y);
            Assert.AreEqual(EDirection.S, position.Direction);
        }
Exemplo n.º 8
0
        public void RoverEngine_TurnRight_From11W_To11N()
        {
            var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            var moveResult = engine.TurnRight();

            Assert.AreEqual(1, moveResult.Position.X);
            Assert.AreEqual(1, moveResult.Position.Y);
            Assert.AreEqual(EDirection.N, moveResult.Position.Direction);
        }
Exemplo n.º 9
0
        public void shouldSendMCommand()
        {
            RoverEngine roverEngine = new RoverEngine();
            Planet      planet      = new Planet(5, 5);
            Rover       rover       = new Rover(0, 0, Direction.NORTH, planet);

            roverEngine.sendCommand(rover, 'M');

            Assert.AreEqual("0 1 N", rover.getCurrentPosition());
        }
Exemplo n.º 10
0
        public void RoverEngine_MoveBack_W_ObstacleDetected_ReportObstacle()
        {
            _mockObstacleDetector.Setup(m => m.CanMove(2, 1)).Returns(false);

            var engine = new RoverEngine(1, 1, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            var moveResult = engine.MoveBack();

            Assert.AreEqual(1, moveResult.Position.X);
            Assert.AreEqual(1, moveResult.Position.Y);
            Assert.AreEqual(EDirection.W, moveResult.Position.Direction);
            Assert.IsTrue(moveResult.IsObstacleDetected);
        }
Exemplo n.º 11
0
        public void RoverEngine_WrapWest_MoveBack150_From15W_To51_5W()
        {
            var engine = new RoverEngine(1, 5, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            for (int i = 0; i < 150; i++)
            {
                engine.MoveBack();
            }

            var newPosition = engine.GetPosition();

            Assert.AreEqual(51, newPosition.X);
            Assert.AreEqual(5, newPosition.Y);
            Assert.AreEqual(EDirection.W, newPosition.Direction);
        }
Exemplo n.º 12
0
        public void RoverEngine_WrapWest_MoveBack100_ArriveAtSameSpot()
        {
            var engine = new RoverEngine(0, 0, EDirection.W, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            for (int i = 0; i < 100; i++)
            {
                engine.MoveBack();
            }

            var newPosition = engine.GetPosition();

            Assert.AreEqual(0, newPosition.X);
            Assert.AreEqual(0, newPosition.Y);
            Assert.AreEqual(EDirection.W, newPosition.Direction);
        }
Exemplo n.º 13
0
        public void RoverEngine_WrapSouth_MoveForward150_From15S_To1_55S()
        {
            var engine = new RoverEngine(1, 5, EDirection.S, _gridHeight, _gridWidth, _mockObstacleDetector.Object);

            for (int i = 0; i < 150; i++)
            {
                engine.MoveForward();
            }

            var newPosition = engine.GetPosition();

            Assert.AreEqual(1, newPosition.X);
            Assert.AreEqual(55, newPosition.Y);
            Assert.AreEqual(EDirection.S, newPosition.Direction);
        }