< Summary

Class:DCL.Helpers.TextureLoader
Assembly:LazyTextureObserver
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/LazyTextureObserver/TextureLoader.cs
Covered lines:9
Uncovered lines:6
Coverable lines:15
Total lines:47
Line coverage:60% (9 of 15)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:3
Method coverage:66.6% (2 of 3)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
GetTexture()0%2100%
Load(...)0%2.012085.71%
Unload()0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Helpers/LazyTextureObserver/TextureLoader.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3
 4namespace DCL.Helpers
 5{
 6    internal class TextureLoader : ITextureLoader
 7    {
 8        private const bool VERBOSE = false;
 9
 10        private AssetPromise_Texture currentPromise;
 11        public event Action<Texture2D> OnSuccess;
 12        public event Action<Exception> OnFail;
 13
 14        public Texture2D GetTexture()
 15        {
 016            return currentPromise.asset.texture;
 17        }
 18
 19        public void Load(string uri)
 20        {
 2821            if ( currentPromise != null )
 022                AssetPromiseKeeper_Texture.i.Forget(currentPromise);
 23
 2824            currentPromise = new AssetPromise_Texture(uri);
 25
 2826            currentPromise.OnSuccessEvent += (x) =>
 27            {
 028                OnSuccess?.Invoke(x.texture);
 029            };
 30
 2831            currentPromise.OnFailEvent += (x, e) =>
 32            {
 033                OnFail?.Invoke(e);
 34                if (VERBOSE)
 35                    Debug.Log($"Texture loading failed! {uri} {e.Message}");
 036            };
 37
 2838            AssetPromiseKeeper_Texture.i.Keep(currentPromise);
 2839        }
 40
 41        public void Unload()
 42        {
 50843            if ( currentPromise != null )
 2844                AssetPromiseKeeper_Texture.i.Forget(currentPromise);
 50845        }
 46    }
 47}