コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        public void AndTheInputIsFThenMoveForwardIsReturned(string input, Command expectedCommand)
        {
            var converter = new UserInputToCommandConverter();

            var command = converter.ConvertToCommand(input);

            Assert.AreEqual(expectedCommand, command);
        }
コード例 #3
0
        public void AndTheInputIsNullThenAnExceptionIsThrown()
        {
            var converter = new UserInputToCommandConverter();

            Assert.Throws <ArgumentNullException>(() => converter.ConvertToCommand(null));
        }