public void MoveNorth_Should_Move_Current_Coordinate_Appropriately(int currentX, int currentY, bool checkLegality, int expectedX, int expectedY) { var context = new MazeCrawlerContext { Start = new Coordinates(currentX, currentY), NavigationMap = _moveMap, Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveNorth(checkLegality); crawler.CurrentX.Should().Be(expectedX); crawler.CurrentY.Should().Be(expectedY); }
public void MoveNorth_Should_Default_Unsupplied_Parameter_To_True(int y, int expectedY) { var context = new MazeCrawlerContext { Start = new Coordinates(0, y), NavigationMap = new Map(new char[][] { new [] { Map.EMPTY }, new [] { Map.EMPTY } }), Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveNorth(); crawler.CurrentY.Should().Be(expectedY); }
public void MoveSouth_Should_Not_BackTrack() { var context = new MazeCrawlerContext { Start = new Coordinates(0, 0), NavigationMap = new Map(new char[][] { new [] { Map.EMPTY }, new [] { Map.EMPTY } }), Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveSouth(); crawler.MoveNorth(); crawler.CanMove(Direction.North).Should().BeFalse(); crawler.CurrentY.Should().Be(1); }