Beispiel #1
0
        public void Parse_IfNotSupportedFormat_Throws(string area)
        {
            // Arrange
            RectangularAreaParser sut = CreateSut();

            // Act
            Action act = () => sut.Parse(area);

            // Assert
            act.Should().Throw <ArgumentException>()
            .WithMessage($"Unsupported format. (Parameter 'area')");
        }
Beispiel #2
0
        public void Parse_IfSupportedFormat_DoesNotThrow()
        {
            // Arrange
            string area = "1 2";
            RectangularAreaParser sut = CreateSut();

            // Act
            Action act = () => sut.Parse(area);

            // Assert
            act.Should().NotThrow();
        }
Beispiel #3
0
        public void Parse_IfAreaNotNull_DoesNotThrow()
        {
            // Arrange
            string area = string.Empty;
            RectangularAreaParser sut = CreateSut();

            // Act
            Action act = () => sut.Parse(area);

            // Assert
            act.Should().NotThrow <ArgumentNullException>();
        }
Beispiel #4
0
        public void Parse_IfAreaNull_Throws()
        {
            // Arrange
            string area = null;
            RectangularAreaParser sut = CreateSut();

            // Act
            Action act = () => sut.Parse(area);

            // Assert
            act.Should().Throw <ArgumentNullException>()
            .WithMessage($"Parameter can not be null. (Parameter 'area')");
        }
Beispiel #5
0
        public void Parse_ReturnsArea()
        {
            // Arrange
            string area = "1 2";
            RectangularAreaParser sut = CreateSut();

            // Act
            IArea result = sut.Parse(area);

            // Assert
            RectangularArea expectedResult = new RectangularArea(Position.Origin, new Position(1, 2));

            result.Should().Be(expectedResult);
        }
Beispiel #6
0
        private void Run()
        {
            var area   = new RectangularAreaParser().Parse(Console.ReadLine());
            var parser = new SimpleStateParser();

            foreach (var item in GetInputs().ToArray())
            {
                var state = parser.Parse(item.State);
                var robot = new SimpleRobot {
                    Area = area, LastPosition = state.Position, Orientation = state.Orientation
                };
                var commands = new SimpleCommandParser(robot).Parse(item.Commands);
                foreach (var command in commands)
                {
                    command.Execute();
                }
                Console.WriteLine($"{robot.LastPosition.X} {robot.LastPosition.Y} {robot.Orientation}" +
                                  $"{(robot.Status == Status.Lost ? ' ' + robot.Status.ToString() : string.Empty)}");
            }
        }