< Summary

Class:DCL.Controllers.GlobalScene
Assembly:DCL.Runtime
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/WorldRuntime/GlobalScene.cs
Covered lines:10
Uncovered lines:12
Coverable lines:22
Total lines:71
Line coverage:45.4% (10 of 22)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:7
Method coverage:42.8% (3 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
IsInsideSceneBoundaries(...)0%2100%
IsInsideSceneBoundaries(...)0%110100%
SetData()0%6.975057.14%
FetchSceneAssetBundles()0%12300%
SendMetricsEvent()0%2100%

File(s)

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

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL.Helpers;
 3using DCL.Models;
 4using MainScripts.DCL.Controllers.AssetManager.AssetBundles.SceneAB;
 5using UnityEngine;
 6
 7namespace DCL.Controllers
 8{
 9    public class GlobalScene : ParcelScene
 10    {
 11        private const string NEW_CDN_FF = "ab-new-cdn";
 12
 13        [System.NonSerialized]
 14        public string iconUrl;
 15
 716        private FeatureFlag featureFlags => DataStore.i.featureFlags.flags.Get();
 17
 018        protected override string prettyName => $"{sceneData.id} - {sceneData.sceneNumber}{(isPortableExperience ? " (PE
 19
 20        public override bool IsInsideSceneBoundaries(Vector3 worldPosition, float height = 0f)
 21        {
 022            return true;
 23        }
 24
 25        public override bool IsInsideSceneBoundaries(Vector2Int gridPosition, float height = 0)
 26        {
 327            return true;
 28        }
 29
 30        public override async UniTask SetData(LoadParcelScenesMessage.UnityParcelScene data)
 31        {
 732            this.sceneData = data;
 33
 734            contentProvider = new ContentProvider
 35            {
 36                baseUrl = data.baseUrl,
 37                contents = data.contents,
 38                sceneCid = data.id,
 39                baseUrlBundles = data.baseUrlBundles,
 40            };
 41
 742            contentProvider.BakeHashes();
 43
 744            if (featureFlags.IsFeatureEnabled(NEW_CDN_FF))
 45            {
 046                var sceneAb = await FetchSceneAssetBundles(data.id, data.baseUrlBundles);
 47
 048                if (sceneAb.IsSceneConverted())
 49                {
 050                    contentProvider.assetBundles = sceneAb.GetConvertedFiles();
 051                    contentProvider.assetBundlesBaseUrl = sceneAb.GetBaseUrl();
 52                }
 53            }
 54
 755            Vector3 gridToWorldPosition = Utils.GridToWorldPosition(data.basePosition.x, data.basePosition.y);
 756            gameObject.transform.position = PositionUtils.WorldToUnityPosition(gridToWorldPosition);
 57
 758            DataStore.i.sceneWorldObjects.AddScene(sceneData.sceneNumber);
 759        }
 60
 61        private async UniTask<Asset_SceneAB> FetchSceneAssetBundles(string sceneId, string dataBaseUrlBundles)
 62        {
 063            AssetPromise_SceneAB promiseSceneAb = new AssetPromise_SceneAB(dataBaseUrlBundles, sceneId);
 064            AssetPromiseKeeper_SceneAB.i.Keep(promiseSceneAb);
 065            await promiseSceneAb.ToUniTask();
 066            return promiseSceneAb.asset;
 067        }
 68
 069        protected override void SendMetricsEvent() { }
 70    }
 71}