public void ShouldThrowExceptionWhenParseInvalidInput()
        {
            var parser = new RoverPositionParser();
            var result = Record.Exception(() => parser.Parse("ABCD"));

            result.ShouldBeType<ParserException>();
        }
        public void GetPosition_ProperPosition_SameValuePositionObject()
        {
            var parser   = new RoverPositionParser("12 11 E");
            var position = parser.GetPosition();

            Assert.Equal(12, position.X);
            Assert.Equal(11, position.Y);
            Assert.Equal(CardinalPoints.East, position.Heading);
        }
 public void ShouldParseValidInput()
 {
     var parser = new RoverPositionParser();
     var result = parser.Parse("1 2 W");
     var expected = new RoverPosition(new Coordinate(1, 2), Compass.West);
     result.Direction.ShouldEqual(expected.Direction);
     result.Coordinate.X.ShouldEqual(result.Coordinate.X);
     result.Coordinate.Y.ShouldEqual(result.Coordinate.Y);
 }
        public Rover execute(String roverPos, String roverCmds, String maxPos)
        {
            IAbstractParser roverPosParser  = new RoverPositionParser();
            IAbstractParser roverCmdsParser = new RoverCommandsParser();
            Rover           rover           = new Rover(0, 0, Orientation.N);

            roverPosParser.parse(rover, roverPos, maxPos);
            roverCmdsParser.parse(rover, roverCmds, maxPos);
            Console.WriteLine(rover);
            return(rover);
        }