< 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:23
Uncovered lines:8
Coverable lines:31
Total lines:64
Line coverage:74.1% (23 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%330100%

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    {
 239        public bool isHQ => hqTexture != null;
 710        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            previewAsset = previewTexture;
 721            this.hqResolution = hqResolution;
 722            this.textureUpdateCallback = textureUpdateCallback;
 723        }
 24
 25        public void Dispose()
 26        {
 727            if (hqTexture == null)
 228                return;
 29
 530            AssetPromiseKeeper_Texture.i.Forget(hqTexture);
 531            hqTexture = null;
 532            textureUpdateCallback = null;
 533        }
 34
 35        public void FetchAndSetHQAsset(string url, Action onSuccess, Action<Exception> onFail)
 36        {
 737            hqTexture = new AssetPromise_Texture(url);
 38
 739            hqTexture.OnSuccessEvent += asset =>
 40            {
 041                textureUpdateCallback?.Invoke(asset.texture);
 042                onSuccess?.Invoke();
 043            };
 744            hqTexture.OnFailEvent += (asset, error) =>
 45            {
 046                hqTexture = null;
 047                onFail?.Invoke(error);
 048            };
 49
 750            AssetPromiseKeeper_Texture.i.Keep(hqTexture);
 751        }
 52
 53        public void RestorePreviewAsset()
 54        {
 255            if (hqTexture != null)
 56            {
 257                AssetPromiseKeeper_Texture.i.Forget(hqTexture);
 258                hqTexture = null;
 59            }
 60
 261            textureUpdateCallback?.Invoke(previewAsset.texture);
 262        }
 63    }
 64}