public void MarkersShouldSetCorrectly() { const int MAX_MARKERS = 5; const int EXCLUSION_AREA = 1; var markerPrefab = new GameObject().AddComponent <UserMarkerObject>(); var overlay = new GameObject(); Func <float, float, Vector3> coordToMapPosFunc = (x, y) => { return(new Vector3(x, y, 0)); }; // create scenes to test var scenes = new List <HotScenesController.HotSceneInfo>(); scenes.Add(CreateSceneInfo(new Vector2Int(0, 0))); scenes.Add(CreateSceneInfo(new Vector2Int(3, 4))); scenes.Add(CreateSceneInfo(new Vector2Int(-4, -4))); // create handler MarkersHandler handler = new MarkersHandler(markerPrefab, overlay.transform, MAX_MARKERS, coordToMapPosFunc); Assert.AreEqual(MAX_MARKERS, handler.availableMarkers.Count); Assert.AreEqual(0, handler.usedMarkers.Count); // set exclusion area and set markers for scenes handler.SetExclusionArea(Vector2Int.zero, EXCLUSION_AREA); handler.SetMarkers(scenes); // check pools count and marker hidden by exclusion area Assert.AreEqual(MAX_MARKERS - scenes.Count, handler.availableMarkers.Count); Assert.AreEqual(scenes.Count, handler.usedMarkers.Count); Assert.AreEqual(scenes.Count - 1, GetActiveGameObjectsInParent(overlay.transform), "A marker should be hidden by exclusion area"); // move exclusion area and check markers hidden by exclusion area handler.SetExclusionArea(new Vector2Int(6, 6), EXCLUSION_AREA); Assert.AreEqual(scenes.Count, GetActiveGameObjectsInParent(overlay.transform), "All markers should be visible"); // remove a scene and check pools count scenes.RemoveAt(0); handler.SetMarkers(scenes); Assert.AreEqual(MAX_MARKERS - scenes.Count, handler.availableMarkers.Count); Assert.AreEqual(scenes.Count, handler.usedMarkers.Count); handler.Dispose(); UnityEngine.Object.Destroy(markerPrefab); UnityEngine.Object.Destroy(overlay); }
private void OnScenesFetched(List <HotScenesController.HotSceneInfo> sceneList) { markersHandler.SetMarkers(sceneList); }