< Summary

Class:NFTShape_Internal.NFTImageAsset
Assembly:MainScripts
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/NFTShape/Scripts/NFTImageAsset.cs
Covered lines:18
Uncovered lines:13
Coverable lines:31
Total lines:64
Line coverage:58% (18 of 31)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
NFTImageAsset(...)0%110100%
Dispose()0%220100%
FetchAndSetHQAsset(...)0%110100%
RestorePreviewAsset()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/LoadableShapes/NFTShape/Scripts/NFTImageAsset.cs

#LineLine coverage
 1using System;
 2using DCL;
 3using UnityEngine;
 4
 5namespace NFTShape_Internal
 6{
 7    public class NFTImageAsset : INFTAsset
 8    {
 79        public bool isHQ => hqTexture != null;
 110        public int hqResolution { private set; get; }
 011        public ITexture previewAsset { get; }
 12
 013        public ITexture hqAsset => hqTexture?.asset;
 14
 15        private AssetPromise_Texture hqTexture;
 16        private Action<Texture2D> textureUpdateCallback;
 17
 718        public NFTImageAsset(ITexture previewTexture, int hqResolution, Action<Texture2D> textureUpdateCallback)
 19        {
 720            this.previewAsset = previewTexture;
 721            this.hqResolution = hqResolution;
 722            this.textureUpdateCallback = textureUpdateCallback;
 723        }
 24
 25        public void Dispose()
 26        {
 727            if (hqTexture == null)
 628                return;
 29
 130            AssetPromiseKeeper_Texture.i.Forget(hqTexture);
 131            hqTexture = null;
 132            textureUpdateCallback = null;
 133        }
 34
 35        public void FetchAndSetHQAsset(string url, Action onSuccess, Action onFail)
 36        {
 137            hqTexture = new AssetPromise_Texture(url);
 38
 139            hqTexture.OnSuccessEvent += (asset) =>
 40            {
 041                textureUpdateCallback?.Invoke(asset.texture);
 042                onSuccess?.Invoke();
 043            };
 144            hqTexture.OnFailEvent += (asset) =>
 45            {
 046                hqTexture = null;
 047                onFail?.Invoke();
 048            };
 49
 150            AssetPromiseKeeper_Texture.i.Keep(hqTexture);
 151        }
 52
 53        public void RestorePreviewAsset()
 54        {
 055            if (hqTexture != null)
 56            {
 057                AssetPromiseKeeper_Texture.i.Forget(hqTexture);
 058                hqTexture = null;
 59            }
 60
 061            textureUpdateCallback?.Invoke(previewAsset.texture);
 062        }
 63    }
 64}