public static PositionSystem Instance() { if (instance == null) { instance = new PositionSystem(); } return(instance); }
public void Path_DifferentMaps_ReturnsNull() { PositionSystem testPositionSystem = SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm); MapCoordinate from = GetTestMapCoordinate(x: 0, y: 0); MapCoordinate to = GetTestMapCoordinate(key: "DIFFERENT_MAP", x: 1, y: 0); var result = testPositionSystem.Path(from, to); pathfindingAlgorithm.Path(Arg.Any <IMap>(), from, to).Received(0); result.Should().BeNull(); }
public void Path_CallsPathfindingAlgorithm() { PositionSystem testPositionSystem = SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm); MapCoordinate from = GetTestMapCoordinate(x: 0, y: 0); MapCoordinate to = GetTestMapCoordinate(x: 1, y: 0); testPositionSystem.Path(from, to); pathfindingAlgorithm.Path(Arg.Any <IMap>(), from, to).Received(1); }
private static PositionSystem SetUpTestPositionSystemWithPathfindingAlgorithm(out IPathfindingAlgorithm pathfindingAlgorithm) { pathfindingAlgorithm = Substitute.For <IPathfindingAlgorithm>(); IEntityEngine entityEngine = Substitute.For <IEntityEngine>(); IMapSystem mapSystem = Substitute.For <IMapSystem>(); mapSystem.MapCollection.Returns(new Atlas() { { new MapKey(TEST_MAP_NAME), Substitute.For <IMap>() } }); var testPositionSystem = new PositionSystem(mapSystem, entityEngine, pathfindingAlgorithm); return(testPositionSystem); }