< Summary

Information
Class: Fluorite.Strainer.Services.Pipelines.StrainerPipeline
Assembly: Fluorite.Strainer
File(s): /builds/fluorite/strainer/src/Strainer/Services/Pipelines/StrainerPipeline.cs
Line coverage
100%
Covered lines: 19
Uncovered lines: 0
Coverable lines: 19
Total lines: 44
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
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%
Run(...)100%22100%

File(s)

/builds/fluorite/strainer/src/Strainer/Services/Pipelines/StrainerPipeline.cs

#LineLine coverage
 1using Fluorite.Strainer.Exceptions;
 2using Fluorite.Strainer.Models;
 3
 4namespace Fluorite.Strainer.Services.Pipelines;
 5
 6public class StrainerPipeline : IStrainerPipeline
 7{
 8    private readonly IEnumerable<IStrainerPipelineOperation> _operations;
 9    private readonly IStrainerOptionsProvider _strainerOptionsProvider;
 10
 1011    public StrainerPipeline(
 1012        IEnumerable<IStrainerPipelineOperation> operations,
 1013        IStrainerOptionsProvider strainerOptionsProvider)
 14    {
 1015        Guard.Against.Null(operations);
 916        Guard.Against.Null(strainerOptionsProvider);
 17
 818        _operations = operations;
 819        _strainerOptionsProvider = strainerOptionsProvider;
 820    }
 21
 22    public IQueryable<T> Run<T>(IStrainerModel model, IQueryable<T> source)
 23    {
 724        Guard.Against.Null(model);
 625        Guard.Against.Null(source);
 26
 527        var options = _strainerOptionsProvider.GetStrainerOptions();
 528        var result = source;
 29
 30        try
 31        {
 2032            foreach (var operation in _operations)
 33            {
 634                result = operation.Execute(model, result);
 35            }
 336        }
 237        catch (StrainerException) when (!options.ThrowExceptions)
 38        {
 139            return source;
 40        }
 41
 342        return result;
 143    }
 44}