< Summary

Class:DCL.WorldRuntime.SceneResourcesLoadTracker
Assembly:SceneResourcesLoadTracker
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneResourcesLoadTracker/SceneResourcesLoadTracker.cs
Covered lines:27
Uncovered lines:10
Coverable lines:37
Total lines:93
Line coverage:72.9% (27 of 37)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Track(...)0%2.022083.33%
Track(...)0%2.022083.33%
Dispose()0%110100%
ShouldWaitForPendingResources()0%220100%
PrintWaitingResourcesDebugInfo()0%6200%
GetStateString()0%2.152066.67%
DisposeCurrentTracker()0%2.022083.33%
TrackerResourcesLoaded()0%220100%
OnTrackerResourcesStatusUpdate()0%2.52050%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/SceneResourcesLoadTracker/SceneResourcesLoadTracker.cs

#LineLine coverage
 1using System;
 2using DCL.ECSRuntime;
 3using UnityEngine;
 4
 5namespace DCL.WorldRuntime
 6{
 7    public class SceneResourcesLoadTracker : IDisposable
 8    {
 69        public int pendingResourcesCount => tracker.pendingResourcesCount;
 35610        public float loadingProgress => tracker.loadingProgress;
 11
 12        public event Action OnResourcesLoaded;
 13        public event Action OnResourcesStatusUpdate;
 14
 15        internal IResourcesLoadTracker tracker;
 16
 17        public void Track(int sceneNumber)
 18        {
 1119            if (tracker is ResourcesLoadTrackerECS)
 020                return;
 21
 1122            tracker = new ResourcesLoadTrackerECS(DataStore.i.ecs7, sceneNumber);
 1123            tracker.OnResourcesLoaded += TrackerResourcesLoaded;
 1124            tracker.OnStatusUpdate += OnTrackerResourcesStatusUpdate;
 1125        }
 26
 27        public void Track(IECSComponentsManagerLegacy componentsManagerLegacy, IWorldState worldState)
 28        {
 39129            if (tracker is ResourcesLoadTrackerLegacyECS)
 030                return;
 31
 39132            tracker = new ResourcesLoadTrackerLegacyECS(componentsManagerLegacy, worldState);
 39133            tracker.OnResourcesLoaded += TrackerResourcesLoaded;
 39134            tracker.OnStatusUpdate += OnTrackerResourcesStatusUpdate;
 39135        }
 36
 37        public void Dispose()
 38        {
 35439            DisposeCurrentTracker();
 35440        }
 41
 42        public bool ShouldWaitForPendingResources()
 43        {
 844            if (tracker.pendingResourcesCount == 0)
 45            {
 646                return false;
 47            }
 248            return tracker.CheckPendingResources();
 49        }
 50
 51        public void PrintWaitingResourcesDebugInfo()
 52        {
 053            if (tracker == null)
 54            {
 055                Debug.Log($"PrintWaitingResourcesDebugInfo failed. SceneResourcesLoadTracker tracker == null");
 056                return;
 57            }
 58
 059            tracker.PrintWaitingResourcesDebugInfo();
 060        }
 61
 62        public string GetStateString()
 63        {
 264            if (tracker == null)
 65            {
 066                return "SceneResourcesLoadTracker tracker == null";
 67            }
 68
 269            return tracker.GetStateString();
 70        }
 71
 72        private void DisposeCurrentTracker()
 73        {
 35474            if (tracker == null)
 75            {
 076                return;
 77            }
 35478            tracker.OnResourcesLoaded -= TrackerResourcesLoaded;
 35479            tracker.OnStatusUpdate -= OnTrackerResourcesStatusUpdate;
 35480            tracker.Dispose();
 35481        }
 82
 83        private void TrackerResourcesLoaded()
 84        {
 585            OnResourcesLoaded?.Invoke();
 286        }
 87
 88        private void OnTrackerResourcesStatusUpdate()
 89        {
 190            OnResourcesStatusUpdate?.Invoke();
 091        }
 92    }
 93}