Ejemplo n.º 1
0
        public void RoverDeploy(string command, int plataueWidth, int plataueHeight)
        {
            var plataue = new Plataeu();

            plataue.DefineSize(plataueWidth, plataueHeight);

            IRoverManager manager             = new RoverManager(plataue);
            var           commandSplit        = command.Split(' ');
            var           expectedXCoordinate = int.Parse(commandSplit[0]);
            var           expectedYCoordinate = int.Parse(commandSplit[1]);
            var           expectedDirection   = (Direction)Enum.Parse(typeof(Direction), commandSplit[2]);

            manager.DeployRover(expectedXCoordinate, expectedYCoordinate, expectedDirection);
        }
Ejemplo n.º 2
0
        public void RoverMove(string command)
        {
            var plataue = new Plataeu();

            plataue.DefineSize(5, 5);
            IRoverManager roverManager = new RoverManager(plataue);

            roverManager.DeployRover(0, 0, Direction.N);

            foreach (var moveCommand in command.ToCharArray())
            {
                var movement = (Movement)Enum.Parse(typeof(Movement), moveCommand.ToString());
                roverManager.ActiveRover.Move(movement);
            }

            Assert.Equal(0, roverManager.ActiveRover.XCoordinate);
            Assert.Equal(Direction.N, roverManager.ActiveRover.Direction);
            Assert.Equal(2, roverManager.ActiveRover.YCoordinate);
        }
Ejemplo n.º 3
0
        public void Rover_Moves_To_North_More_Than_Plateau_Height_Returns_X_Position_Maximum_Plateau_Height(string command)
        {
            // Arrange
            ISurface plateau = new Plateau();

            plateau.SetSize(5, 5);
            IRoverManager roverManager = new RoverManager(plateau);

            roverManager.DeployRover(new Point(0, 0), Direction.N);
            var movements = command.ToCharArray().Select(x => Enum.Parse <Movement>(x.ToString())).ToList();

            //Act
            roverManager.ActiveRover.Move(movements);

            //Assert
            roverManager.ActiveRover.Should().NotBeNull();
            roverManager.ActiveRover.Position.Should().Be(new Point(0, 5));
            roverManager.ActiveRover.Direction.Should().Be(Direction.N);
        }
Ejemplo n.º 4
0
        public void Rover_Is_Deployed_In_UnAcceptable_Position_On_Plateau(string command)
        {
            // Arrange
            ISurface plateau = new Plateau();

            plateau.SetSize(1, 1);

            IRoverManager roverManager        = new RoverManager(plateau);
            var           commandSplitted     = command.Split(' ');
            var           expectedXCoordinate = int.Parse(commandSplitted[0]);
            var           expectedYCoordinate = int.Parse(commandSplitted[1]);
            var           expectedDirection   = Enum.Parse <Direction>(commandSplitted[2]);

            // Act
            var action = new Action(() => roverManager.DeployRover(new Point(expectedXCoordinate, expectedYCoordinate), expectedDirection));

            // Assert
            action.Should().Throw <Exception>().WithMessage($"Rover outside of bounds. X: {expectedXCoordinate}, Y:{expectedYCoordinate}. Surface Width:{plateau.Size.Width}, Height:{plateau.Size.Height}");
        }
Ejemplo n.º 5
0
        public void Rover_Moves_Two_Units_North_Three_Units_East_On_Plateau(string command)
        {
            // Arrange
            ISurface plateau = new Plateau();

            plateau.SetSize(5, 5);

            IRoverManager roverManager = new RoverManager(plateau);

            roverManager.DeployRover(new Point(0, 0), Direction.N);
            var movements = command.ToCharArray().Select(x => Enum.Parse <Movement>(x.ToString())).ToList();

            //Act
            roverManager.ActiveRover.Move(movements);

            //Assert
            roverManager.ActiveRover.Should().NotBeNull();
            roverManager.ActiveRover.Position.Should().Be(new Point(3, 2));
            roverManager.ActiveRover.Direction.Should().Be(Direction.E);
        }
Ejemplo n.º 6
0
        public void Rover_Is_Deployed_In_Acceptable_Position_On_Plateau(string command)
        {
            // Arrange
            ISurface plateau = new Plateau();

            plateau.SetSize(5, 5);

            IRoverManager roverManager        = new RoverManager(plateau);
            var           commandSplitted     = command.Split(' ');
            var           expectedXCoordinate = int.Parse(commandSplitted[0]);
            var           expectedYCoordinate = int.Parse(commandSplitted[1]);
            var           expectedDirection   = Enum.Parse <Direction>(commandSplitted[2]);

            // Act
            roverManager.DeployRover(new Point(expectedXCoordinate, expectedYCoordinate), expectedDirection);

            // Assert
            roverManager.ActiveRover.Position.X.Should().Be(expectedXCoordinate);
            roverManager.ActiveRover.Position.Y.Should().Be(expectedYCoordinate);
            roverManager.ActiveRover.Direction.Should().Be(expectedDirection);
        }