public void ShouldThrowExceptionWhenParseInvalidInput()
        {
            var parser = new RoverCommandParser();

            var result = Record.Exception(() => parser.Parse("ABCD"));

            result.ShouldBeType<ParserException>();
        }
        public void ShouldParseValidInput()
        {
            var parser = new RoverCommandParser();
            var expected = new List<IRoverCommand>() { new TurnLeftCommand(), new TurnRightCommand(), new MoveFowardCommand(), new TurnRightCommand(), new TurnLeftCommand() };

            var result = parser.Parse("LRMRL").ToList();

            result[0].ShouldBeType(expected[0].GetType());
            result[1].ShouldBeType(expected[1].GetType());
            result[2].ShouldBeType(expected[2].GetType());
            result[3].ShouldBeType(expected[3].GetType());
            result[4].ShouldBeType(expected[4].GetType());
        }