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; } } }
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); }
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); }