public void AsAMotherShipIShouldAbortTheMarsRoverMissionIfThereIsInvalidDirectionForRoverPosition()
        {
            var commands = "1 1\n0 0 A";

            var motherShip = new MotherShip();

            motherShip.ExecuteMarsRoverMission(commands);

            Assert.AreEqual(Messages.RoverArgumentNullExceptionMessage, motherShip.MarsRoverMissionResult);
        }
        public void AsAMotherShipIShouldAbortTheMarsRoverMissionIfThereIsNegativeYValueForRoverPosition()
        {
            var commands = "1 1\n0 -1 N";

            var motherShip = new MotherShip();

            motherShip.ExecuteMarsRoverMission(commands);

            Assert.AreEqual(Messages.RoverNegativePositionExceptionMessage, motherShip.MarsRoverMissionResult);
        }
        public void AsAMotherShipIShouldAbortTheMarsRoverMissionIfICannotInitiateTheTerrain()
        {
            var commands = "0 1";

            var motherShip = new MotherShip();

            motherShip.ExecuteMarsRoverMission(commands);

            Assert.AreEqual(Messages.TerrainInvalidInitializationValueExceptionMessage, motherShip.MarsRoverMissionResult);
        }
        public void AsAMotherShipIShouldReceiveValidTextCommandsAndExecuteTheMarsRoverMission()
        {
            var commands = "5 5\n1 2 N\nLMLMLMLMM\n3 3 E\nMMRMMRMRRM";
            var expectedOutput = "1 3 N\n5 1 E";

            var motherShip = new MotherShip();

            motherShip.ExecuteMarsRoverMission(commands);

            Assert.AreEqual(expectedOutput, motherShip.MarsRoverMissionResult);
        }