< Summary

Class:DCL.Map.WebInterfaceMinimapApiBridge
Assembly:MapRenderer
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/MapRenderer/WebInterfaceMinimapApiBridge.cs
Covered lines:4
Uncovered lines:16
Coverable lines:20
Total lines:62
Line coverage:20% (4 of 20)
Covered branches:0
Total branches:0
Covered methods:4
Total methods:7
Method coverage:57.1% (4 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
WebInterfaceMinimapApiBridge()0%110100%
Awake()0%220100%
UpdateMinimapSceneInformation(...)0%30500%
GetScenesInformationAroundParcel(...)0%6200%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/MapRenderer/WebInterfaceMinimapApiBridge.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL.Helpers;
 3using DCL.Interface;
 4using JetBrains.Annotations;
 5using System;
 6using System.Collections.Generic;
 7using System.Threading;
 8using UnityEngine;
 9
 10namespace DCL.Map
 11{
 12    public class WebInterfaceMinimapApiBridge : MonoBehaviour, IMinimapApiBridge
 13    {
 14        private const string GET_SCENES_INFO_ID = "GetScenesInformationAroundParcel";
 15
 216        public static WebInterfaceMinimapApiBridge i { get; private set; }
 17
 118        private readonly Dictionary<string, IUniTaskSource> pendingTasks = new ();
 019        private MinimapMetadata minimapMetadata => MinimapMetadata.GetMetadata();
 20
 21        private void Awake()
 22        {
 123            i ??= this;
 124        }
 25
 26        [PublicAPI]
 27        public void UpdateMinimapSceneInformation(string scenesInfoJson)
 28        {
 029            MinimapMetadataPayload payload = JsonUtility.FromJson<MinimapMetadataPayload>(scenesInfoJson);
 30
 031            if(!string.IsNullOrEmpty(scenesInfoJson) && !payload.isWorldScene)
 032                foreach (var sceneInfo in payload.scenesInfo)
 033                    minimapMetadata.AddSceneInfo(sceneInfo);
 34
 035            if (!pendingTasks.ContainsKey(GET_SCENES_INFO_ID)) return;
 036            var task = (UniTaskCompletionSource<MinimapMetadata.MinimapSceneInfo[]>) pendingTasks[GET_SCENES_INFO_ID];
 037            pendingTasks.Remove(GET_SCENES_INFO_ID);
 038            task.TrySetResult(payload.scenesInfo);
 039        }
 40
 41        public virtual UniTask<MinimapMetadata.MinimapSceneInfo[]> GetScenesInformationAroundParcel(Vector2Int coordinat
 42        {
 043            if (pendingTasks.TryGetValue(GET_SCENES_INFO_ID, out var pendingTask))
 044                return ((UniTaskCompletionSource<MinimapMetadata.MinimapSceneInfo[]>) pendingTask)
 45                      .Task.AttachExternalCancellation(cancellationToken);
 46
 047            UniTaskCompletionSource<MinimapMetadata.MinimapSceneInfo[]> task = new ();
 048            pendingTasks[GET_SCENES_INFO_ID] = task;
 49
 050            WebInterface.RequestScenesInfoAroundParcel(coordinate, areaSize);
 51
 052            return task.Task.AttachExternalCancellation(cancellationToken);
 53        }
 54    }
 55
 56    [Serializable]
 57    public class MinimapMetadataPayload
 58    {
 59        public bool isWorldScene;
 60        public MinimapMetadata.MinimapSceneInfo[] scenesInfo;
 61    }
 62}