< Summary

Class:DCLServices.MapRendererV2.ComponentsFactory.SceneOfInterestsMarkersInstaller
Assembly:MapRendererV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/ComponentsFactory/SceneOfInterestsMarkersInstaller.cs
Covered lines:13
Uncovered lines:1
Coverable lines:14
Total lines:69
Line coverage:92.8% (13 of 14)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:3
Method coverage:66.6% (2 of 3)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Install()0%550100%
CreateMarker(...)0%2100%
GetPrefab()0%330100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/MapRendererV2/ComponentsFactory/SceneOfInterestsMarkersInstaller.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using Cysharp.Threading.Tasks.Linq;
 3using DCL;
 4using DCL.Providers;
 5using DCLServices.MapRendererV2.CoordsUtils;
 6using DCLServices.MapRendererV2.Culling;
 7using DCLServices.MapRendererV2.MapLayers;
 8using DCLServices.MapRendererV2.MapLayers.PointsOfInterest;
 9using MainScripts.DCL.Helpers.Utils;
 10using System.Collections.Generic;
 11using System.Threading;
 12using UnityEngine;
 13using UnityEngine.Pool;
 14
 15namespace DCLServices.MapRendererV2.ComponentsFactory
 16{
 17    internal struct SceneOfInterestsMarkersInstaller
 18    {
 19        private const int PREWARM_COUNT = 60;
 20        private const string SCENE_OF_INTEREST_MARKER_ADDRESS = "SceneOfInterestMarker";
 21
 22        private Service<IAddressableResourceProvider> addressablesProvider;
 23
 24        public async UniTask Install(
 25            Dictionary<MapLayer, IMapLayerController> writer,
 26            List<IZoomScalingLayer> zoomScalingWriter,
 27            MapRendererConfiguration configuration,
 28            ICoordsUtils coordsUtils,
 29            IMapCullingController cullingController,
 30            CancellationToken cancellationToken
 31        )
 32        {
 9833            var prefab = await GetPrefab(cancellationToken);
 34
 9635            var objectsPool = new UnityObjectPool<SceneOfInterestMarkerObject>(
 36                prefab,
 37                configuration.ScenesOfInterestMarkersRoot,
 38                actionOnCreate: (obj) =>
 39                {
 4416040                    for (var i = 0; i < obj.renderers.Length; i++)
 1656041                        obj.renderers[i].sortingOrder = MapRendererDrawOrder.SCENES_OF_INTEREST;
 42
 552043                    obj.title.sortingOrder = MapRendererDrawOrder.SCENES_OF_INTEREST;
 552044                    coordsUtils.SetObjectScale(obj);
 552045                },
 46                defaultCapacity: PREWARM_COUNT);
 47
 9648            var controller = new ScenesOfInterestMarkersController(
 49                MinimapMetadata.GetMetadata(),
 50                objectsPool,
 51                CreateMarker,
 52                PREWARM_COUNT,
 53                configuration.ScenesOfInterestMarkersRoot,
 54                coordsUtils,
 55                cullingController
 56            );
 57
 28858            await controller.Initialize(cancellationToken);
 8859            writer.Add(MapLayer.ScenesOfInterest, controller);
 8860            zoomScalingWriter.Add(controller);
 8861        }
 62
 63        private static ISceneOfInterestMarker CreateMarker(IUnityObjectPool<SceneOfInterestMarkerObject> objectsPool, IM
 064            new SceneOfInterestMarker(objectsPool, cullingController);
 65
 66        internal async UniTask<SceneOfInterestMarkerObject> GetPrefab(CancellationToken cancellationToken) =>
 9867            await addressablesProvider.Ref.GetAddressable<SceneOfInterestMarkerObject>(SCENE_OF_INTEREST_MARKER_ADDRESS,
 68    }
 69}