示例#1
0
        static void Main(string[] args)
        {
            Area  area  = null;
            Rover rover = null;

            Domain.Factories.TaskFactory taskFactory = new Domain.Factories.TaskFactory();


            while (true)
            {
                var statement = Console.ReadLine().Trim().ToUpper();

                if (statement == string.Empty)
                {
                    break;
                }

                if (area == null)
                {
                    area = taskFactory.CreateArea(statement);
                }
                else if (rover == null)
                {
                    rover = taskFactory.CreateRover(area, statement);
                }
                else
                {
                    rover.Process(statement);
                    Console.WriteLine(rover);
                    rover = null;
                }
            }
        }
示例#2
0
        public void AreaCreationFromSyntax(string statement, int width, int height)
        {
            var roverFactory = new Domain.Factories.TaskFactory();

            var area = roverFactory.CreateArea(statement);

            area.Width.Should().Be(width);
            area.Height.Should().Be(height);
        }
示例#3
0
        public void RoverCreationFromSyntax(int areaWidth, int areaHeight, string statement, Type T)
        {
            var area         = new Area(areaWidth, areaHeight);
            var roverFactory = new Domain.Factories.TaskFactory();

            var rover = roverFactory.CreateRover(area, statement);

            rover.Area.Width.Should().Be(areaWidth);
            rover.Area.Height.Should().Be(areaHeight);
            rover.Heading.Should().BeOfType(T);

            rover.ToString().Should().Be(statement);
        }