< Summary

Class:DCLServices.Lambdas.LandsService.LandsService
Assembly:LandsService
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/Lambdas/LandsService/LandsService.cs
Covered lines:3
Uncovered lines:15
Coverable lines:18
Total lines:59
Line coverage:16.6% (3 of 18)
Covered branches:0
Total branches:0
Covered methods:3
Total methods:5
Method coverage:60% (3 of 5)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
LandsService()0%110100%
RequestOwnedLandsAsync()0%56700%
DCLServices.Lambdas.ILambdaServiceConsumer<DCLServices.Lambdas.LandsService.LandsResponse>.CreateRequest(...)0%2100%
Dispose()0%110100%
Initialize()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/Lambdas/LandsService/LandsService.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL;
 3using System;
 4using System.Collections.Generic;
 5using System.Threading;
 6
 7namespace DCLServices.Lambdas.LandsService
 8{
 9    public class LandsService : ILandsService, ILambdaServiceConsumer<LandsResponse>
 10    {
 11        internal const string END_POINT = "users/";
 12        internal const int TIMEOUT = ILambdasService.DEFAULT_TIMEOUT;
 13        internal const int ATTEMPTS_NUMBER = ILambdasService.DEFAULT_ATTEMPTS_NUMBER;
 14
 15        private Service<ILambdasService> lambdasService;
 42516        private readonly Dictionary<(string userId, int pageSize), LambdaResponsePagePointer<LandsResponse>> ownerLandsP
 17
 18        public async UniTask<(IReadOnlyList<LandsResponse.LandEntry> lands, int totalAmount)> RequestOwnedLandsAsync(str
 19        {
 020            var createNewPointer = false;
 021            if (!ownerLandsPagePointers.TryGetValue((userId, pageSize), out var pagePointer))
 22            {
 023                createNewPointer = true;
 24            }
 025            else if (cleanCachedPages)
 26            {
 027                pagePointer.Dispose();
 028                ownerLandsPagePointers.Remove((userId, pageSize));
 029                createNewPointer = true;
 30            }
 31
 032            if (createNewPointer)
 33            {
 034                ownerLandsPagePointers[(userId, pageSize)] = pagePointer = new LambdaResponsePagePointer<LandsResponse>(
 35                    $"{END_POINT}{userId}/lands", pageSize, ct, this);
 36            }
 37
 038            var pageResponse = await pagePointer.GetPageAsync(pageNumber, ct);
 39
 040            if (!pageResponse.success)
 041                throw new Exception($"The request of the owned lands for '{userId}' failed!");
 42
 043            return (pageResponse.response.Elements, pageResponse.response.TotalAmount);
 044        }
 45
 46        UniTask<(LandsResponse response, bool success)> ILambdaServiceConsumer<LandsResponse>.CreateRequest(string endPo
 047            lambdasService.Ref.Get<LandsResponse>(
 48                END_POINT,
 49                endPoint,
 50                TIMEOUT,
 51                ATTEMPTS_NUMBER,
 52                cancellationToken,
 53                LambdaPaginatedResponseHelper.GetPageSizeParam(pageSize), LambdaPaginatedResponseHelper.GetPageNumParam(
 54
 42555        public void Dispose() { }
 56
 42557        public void Initialize() { }
 58    }
 59}