public void CanMove_Should_Return_Correctly(int startX, int startY, Direction direction, bool expected) { var context = new MazeCrawlerContext { Start = new Coordinates(startX, startY), NavigationMap = _canMoveMap, Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.CanMove(direction).Should().Be(expected); }
public void MoveEast_Should_Not_BackTrack() { var context = new MazeCrawlerContext { Start = new Coordinates(0, 0), NavigationMap = new Map(new char[][] { new [] { Map.EMPTY, Map.EMPTY } }), Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveEast(); crawler.MoveWest(); crawler.CanMove(Direction.West).Should().BeFalse(); crawler.CurrentX.Should().Be(1); }
public void MoveNorth_Should_Not_BackTrack() { var context = new MazeCrawlerContext { Start = new Coordinates(0, 1), NavigationMap = new Map(new char[][] { new [] { Map.EMPTY }, new [] { Map.EMPTY } }), Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveNorth(); crawler.MoveSouth(); crawler.CanMove(Direction.South).Should().BeFalse(); crawler.CurrentY.Should().Be(0); }