< Summary - Code Coverage

Information
Class: Plainquire.Filter.ValueFilterExpressions.BooleanFilterExpression
Assembly: Plainquire.Filter
File(s): /home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter/ValueFilterExpressions/BooleanFilterExpression.cs
Tag: 64_13932151703
Line coverage
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 58
Line coverage: 95%
Branch coverage
71%
Covered branches: 10
Total branches: 14
Branch coverage: 71.4%
Method coverage
100%
Covered methods: 4
Total methods: 4
Method coverage: 100%

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
CanCreateExpressionFor(...)100%11100%
CreateExpressionForValue(...)100%66100%
CreateBoolExpressionByFilterOperator(...)50%8866.66%

File(s)

/home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter/ValueFilterExpressions/BooleanFilterExpression.cs

#LineLine coverage
 1using Plainquire.Filter.Abstractions;
 2using System;
 3using System.Collections.Generic;
 4using System.Linq;
 5using System.Linq.Expressions;
 6
 7namespace Plainquire.Filter.ValueFilterExpressions;
 8
 9/// <inheritdoc cref="IBooleanFilterExpression"/>
 10public class BooleanFilterExpression : DefaultFilterExpression, IBooleanFilterExpression
 11{
 12    /// <inheritdoc />
 13    public override ICollection<FilterOperator> SupportedFilterOperators
 14        =>
 157515        [
 157516            FilterOperator.Default,
 157517            FilterOperator.EqualCaseSensitive,
 157518            FilterOperator.EqualCaseInsensitive,
 157519            FilterOperator.NotEqual,
 157520            FilterOperator.IsNull,
 157521            FilterOperator.NotNull
 157522        ];
 23
 24    /// <inheritdoc />
 25    public override bool CanCreateExpressionFor(Type type)
 1084026        => type.GetUnderlyingType() == typeof(bool);
 27
 28    /// <inheritdoc />
 29    protected internal override Expression? CreateExpressionForValue<TEntity, TProperty>(Expression<Func<TEntity, TPrope
 30    {
 113631        if (bool.TryParse(value, out var boolValue))
 81632            return CreateBoolExpressionByFilterOperator(propertySelector, filterOperator, boolValue);
 33
 32034        var boolSyntax = configuration.BooleanMap.FirstOrDefault(x => x.Key.Equals(value, StringComparison.InvariantCult
 32035        if (boolSyntax.Key != null)
 16936            return CreateBoolExpressionByFilterOperator(propertySelector, filterOperator, boolSyntax.Value);
 37
 15138        if (configuration.IgnoreParseExceptions)
 4839            return null;
 40
 10341        throw CreateFilterExpressionCreationException("Unable to parse given filter value", propertySelector, filterOper
 42    }
 43
 44    private Expression CreateBoolExpressionByFilterOperator<TEntity, TProperty>(Expression<Func<TEntity, TProperty>> pro
 45    {
 46        switch (filterOperator)
 47        {
 48            case FilterOperator.Default:
 49            case FilterOperator.EqualCaseSensitive:
 50            case FilterOperator.EqualCaseInsensitive:
 79351                return CreateEqualExpression(propertySelector, value);
 52            case FilterOperator.NotEqual:
 19253                return CreateNotEqualExpression(propertySelector, value);
 54            default:
 055                throw CreateFilterExpressionCreationException($"Filter operator '{filterOperator}' not allowed for prope
 56        }
 57    }
 58}