예제 #1
0
        public void Test_CommandInputHandler_CommandsAddedCorrectly()
        {
            // Arrange
            var robotInput = new RobotInput()
            {
                CommandCount = 2
            };
            var commandCountInputHandler = new CommandInputHandler(robotInput);

            // Act
            commandCountInputHandler.ProcessInput("S 2");
            commandCountInputHandler.ProcessInput("E 1");

            // Assert
            Assert.AreEqual(2, robotInput.Commands.Count);
            Assert.AreEqual("S", robotInput.Commands[0].Direction);
            Assert.AreEqual(2, robotInput.Commands[0].NoOfSteps);
            Assert.AreEqual("E", robotInput.Commands[1].Direction);
            Assert.AreEqual(1, robotInput.Commands[1].NoOfSteps);
        }
예제 #2
0
        public void Test_AllInputHandlerConfigured_InputObjectSetCorrectly()
        {
            // Arrange
            var robotInput = new RobotInput();
            var commandCountInputHandler    = new CommandCountInputHandler(robotInput);
            var initialPositionInputHandler = new InitialPositionInputHandler(robotInput);
            var commandInputHandler         = new CommandInputHandler(robotInput);

            commandCountInputHandler.SetNextInputHandler(initialPositionInputHandler);
            initialPositionInputHandler.SetNextInputHandler(commandInputHandler);

            // Act
            commandCountInputHandler.ProcessInput("2");
            initialPositionInputHandler.ProcessInput("19 4");
            commandInputHandler.ProcessInput("S 6");
            commandInputHandler.ProcessInput("E 1");

            // Assert
            Assert.AreEqual(2, robotInput.CommandCount);
            Assert.AreEqual(19, robotInput.InitialPosition.X);
            Assert.AreEqual(4, robotInput.InitialPosition.Y);
            Assert.AreEqual(2, robotInput.Commands.Count);
        }