static void Main(string[] args) { Area area = null; Rover rover = null; var missionFactory = new MissionFactory(); while (true) { var statement = Console.ReadLine().Trim().ToUpper(); if (statement == string.Empty) { break; } if (area == null) { area = missionFactory.CreateArea(statement); } else if (rover == null) { rover = missionFactory.CreateRover(area, statement); } else { rover.Process(statement); Console.WriteLine(rover); rover = null; } } }
public void RoverMovement_With_Wrong_Result(int areaWidth, int areaHeight, string statement, string thirdLine, string result) { var area = new Area(areaWidth, areaHeight); var roverFactory = new MissionFactory(); var rover = roverFactory.CreateRover(area, statement); Assert.Throws <OutOfAreaException>(() => rover.Process(thirdLine)); }
public void RoverMovement(int areaWidth, int areaHeight, string statement, string thirdLine, string result) { var area = new Area(areaWidth, areaHeight); var roverFactory = new MissionFactory(); var rover = roverFactory.CreateRover(area, statement); rover.Process(thirdLine); rover.ToString().Should().Be(result); }
public void RoverCreationFromSyntax(int areaWidth, int areaHeight, string statement, Type T) { var area = new Area(areaWidth, areaHeight); var roverFactory = new MissionFactory(); 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); }