< Summary

Information
Class: Fluorite.Strainer.Services.Linq.QueryableEvaluator
Assembly: Fluorite.Strainer
File(s): /builds/fluorite/strainer/src/Strainer/Services/Linq/QueryableEvaluator.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 24
Line coverage: 100%
Branch coverage
83%
Covered branches: 5
Total branches: 6
Branch coverage: 83.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
IsMaterialized(...)83.33%66100%

File(s)

/builds/fluorite/strainer/src/Strainer/Services/Linq/QueryableEvaluator.cs

#LineLine coverage
 1using System.Reflection;
 2
 3namespace Fluorite.Strainer.Services.Linq;
 4
 5public class QueryableEvaluator : IQueryableEvaluator
 6{
 7    public bool IsMaterialized<T>(IQueryable<T> queryable)
 8    {
 59        Guard.Against.Null(queryable);
 10
 511        if (queryable is not EnumerableQuery<T> enumerableQuery)
 12        {
 113            return false;
 14        }
 15
 416        var type = enumerableQuery.GetType();
 417        var property = type.GetProperty("Enumerable", BindingFlags.NonPublic | BindingFlags.Instance);
 418        var propertyValue = property.GetValue(queryable, null);
 19
 420        return propertyValue is Array
 421            || propertyValue is ICollection<T>
 422            || propertyValue is IReadOnlyCollection<T>;
 23    }
 24}