static void Main(string[] args) { Console.WriteLine("Please enter a full path for logging. Press enter to use a default file."); var path = Console.ReadLine(); ILogger logger = CreateLogger(path); var roverDecorator = new RoverDecorator(new Rover(), logger); var commandConverter = new UserInputToCommandConverter(); Command command = Command.Unknown; while (command != Command.Quit) { Console.WriteLine(roverDecorator.FormatRover()); Console.WriteLine("Enter a valid command:"); Console.WriteLine("Move (F)orward, Move (B)ackward, Turn (L)eft, Turn (R)ight, (Q)uit"); var input = Console.ReadLine(); command = commandConverter.ConvertToCommand(input); if (command == Command.Unknown) { Console.WriteLine("Wasn't able to parse " + input + " as a valid command."); } else { roverDecorator.ProcessCommand(command); } } }
public void AndTheInputIsFThenMoveForwardIsReturned(string input, Command expectedCommand) { var converter = new UserInputToCommandConverter(); var command = converter.ConvertToCommand(input); Assert.AreEqual(expectedCommand, command); }
public void AndTheInputIsNullThenAnExceptionIsThrown() { var converter = new UserInputToCommandConverter(); Assert.Throws <ArgumentNullException>(() => converter.ConvertToCommand(null)); }