public void TraceSteps_Should_Return_Correctly(int startX, int startY, bool checkLegality, string expected) { var context = new MazeCrawlerContext { Start = new Coordinates(startX, startY), Destination = new Coordinates(5, 5), NavigationMap = _canMoveMap, Coordinator = Substitute.For <IMazeCrawlerCoordinator>() }; var crawler = new MazeCrawler(context); crawler.MoveEast(checkLegality) .MoveNorth(checkLegality) .MoveWest(checkLegality) .MoveWest(checkLegality) .MoveSouth(checkLegality); crawler.TraceSteps().Should().Be(expected); }