Ejemplo n.º 1
0
        public void ShouldRoverLaunchAsExpected(string roverCoordinate)
        {
            // arrange
            _mockPlateau.Setup(x => x.ValidateRoverPosition(It.IsAny <Point>())).Returns(true);
            var plateau = new MarsRover.Domain.Plateau();
            var rover   = new MarsRover.Domain.MarsRover();

            // act
            var plateauSize = "0 0";

            plateau.InitializePlateau(plateauSize);

            rover.Launch(_mockPlateau.Object, roverCoordinate);

            var roverPosition = roverCoordinate.Split(' ');

            int.TryParse(roverPosition[0], out int xPosition);
            int.TryParse(roverPosition[1], out int yPosition);
            var roverDirection = roverPosition[2][0];

            _directionDict = new Dictionary <char, Direction>
            {
                { 'N', Direction.North },
                { 'E', Direction.East },
                { 'S', Direction.South },
                { 'W', Direction.West }
            };

            // assert
            Assert.AreEqual(rover.RoverPosition.X, xPosition);
            Assert.AreEqual(rover.RoverPosition.Y, yPosition);
            Assert.AreEqual(rover.RoverDirection, _directionDict[roverDirection]);
        }
Ejemplo n.º 2
0
        public void ShouldRoverFinalCoordinatesBeValidAsExpected(string plateauSize, string roverCoordinate,
                                                                 string roverMovementCommands, int expectedXResult, int expectedYResult, Direction directionResult)
        {
            // arrange
            _mockPlateau.Setup(x => x.ValidateRoverPosition(It.IsAny <Point>())).Returns(true);
            var rover = new MarsRover.Domain.MarsRover();

            // act
            rover.Launch(_mockPlateau.Object, roverCoordinate);
            rover.Move(roverMovementCommands);

            // assert
            Assert.NotNull(rover);
            Assert.NotNull(rover.RoverPosition);
            Assert.AreEqual(expectedXResult, rover.RoverPosition.X);
            Assert.AreEqual(expectedYResult, rover.RoverPosition.Y);
            Assert.AreEqual(directionResult, rover.RoverDirection);
        }