< Summary

Information
Class: Fluorite.Strainer.Services.Pagination.PageSizeEvaluator
Assembly: Fluorite.Strainer
File(s): /builds/fluorite/strainer/src/Strainer/Services/Pagination/PageSizeEvaluator.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 25
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Evaluate(...)100%44100%

File(s)

/builds/fluorite/strainer/src/Strainer/Services/Pagination/PageSizeEvaluator.cs

#LineLine coverage
 1using Fluorite.Strainer.Models;
 2
 3namespace Fluorite.Strainer.Services.Pagination;
 4
 5public class PageSizeEvaluator : IPageSizeEvaluator
 6{
 7    private readonly IStrainerOptionsProvider _strainerOptionsProvider;
 8
 109    public PageSizeEvaluator(IStrainerOptionsProvider strainerOptionsProvider)
 10    {
 1011        _strainerOptionsProvider = Guard.Against.Null(strainerOptionsProvider);
 912    }
 13
 14    public int Evaluate(IStrainerModel model)
 15    {
 716        Guard.Against.Null(model);
 17
 618        var options = _strainerOptionsProvider.GetStrainerOptions();
 619        var pageSize = model.PageSize ?? options.DefaultPageSize;
 20
 621        return options.MaxPageSize > 0
 622            ? Math.Min(pageSize, options.MaxPageSize)
 623            : pageSize;
 24    }
 25}