< Summary

Class:DCL.Providers.AddressableResourceProvider
Assembly:AssetPromiseKeeper
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/AssetManager/Addressables/AddressableResourceProvider.cs
Covered lines:2
Uncovered lines:0
Coverable lines:2
Total lines:52
Line coverage:100% (2 of 2)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Dispose()0%110100%
Initialize()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/AssetManager/Addressables/AddressableResourceProvider.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using System.Collections.Generic;
 3using System.Threading;
 4using UnityEngine.AddressableAssets;
 5using UnityEngine.ResourceManagement.AsyncOperations;
 6
 7namespace DCL.Providers
 8{
 9    /// <summary>
 10    /// Service provider for addressable assets
 11    /// </summary>
 12    public class AddressableResourceProvider : IAddressableResourceProvider
 13    {
 14        /// <summary>
 15        /// Provides a list of addressable assets
 16        /// </summary>
 17        /// <param name="key">The label to look for the addressable</param>
 18        /// <param name="cancellationToken">Flow control cancellation token</param>
 19        /// <typeparam name="T">Asset type</typeparam>
 20        /// <returns></returns>
 21        public async UniTask<IList<T>> GetAddressablesList<T>(string key, CancellationToken cancellationToken = default)
 22        {
 23            //This function does nothing if initialization has already occurred
 24            await Addressables.InitializeAsync().WithCancellation(cancellationToken);
 25
 26            AsyncOperationHandle<IList<T>> request = Addressables.LoadAssetsAsync<T>(key, null);
 27            await request.WithCancellation(cancellationToken);
 28            return request.Result;
 29        }
 30
 31        /// <summary>
 32        /// Provides a single addressable asset
 33        /// </summary>
 34        /// <param name="key">Key or address of the asset to be retrieved</param>
 35        /// <param name="cancellationToken">Flow control cancellation token</param>
 36        /// <typeparam name="T">Asset type</typeparam>
 37        /// <returns></returns>
 38        public async UniTask<T> GetAddressable<T>(string key, CancellationToken cancellationToken = default)
 39        {
 40            //This function does nothing if initialization has already occurred
 41            await Addressables.InitializeAsync().WithCancellation(cancellationToken);
 42
 43            AsyncOperationHandle<T> request = Addressables.LoadAssetAsync<T>(key);
 44            await request.WithCancellation(cancellationToken);
 45            return request.Result;
 46        }
 47
 49348        public void Dispose() { }
 49
 49350        public void Initialize() { }
 51    }
 52}

Methods/Properties

Dispose()
Initialize()