< Summary - Code Coverage

Information
Class: Plainquire.Filter.ValueFilterFactory
Assembly: Plainquire.Filter
File(s): /home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter/Filters/ValueFilterFactory.cs
Tag: 74_23635074410
Line coverage
91%
Covered lines: 11
Uncovered lines: 1
Coverable lines: 12
Total lines: 53
Line coverage: 91.6%
Branch coverage
83%
Covered branches: 5
Total branches: 6
Branch coverage: 83.3%
Method coverage
100%
Covered methods: 2
Total methods: 2
Method coverage: 100%

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
Create(...)100%11100%
SplitValues(...)83.33%6690%

File(s)

/home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter/Filters/ValueFilterFactory.cs

#LineLine coverage
 1using Plainquire.Filter.Abstractions;
 2using System;
 3using System.Collections.Generic;
 4using System.Linq;
 5using System.Text.RegularExpressions;
 6
 7namespace Plainquire.Filter;
 8
 9/// <summary>
 10/// Factory to create <see cref="ValueFilter"/> for all values from filterSyntax.
 11/// </summary>
 12public static class ValueFilterFactory
 13{
 14    /// <summary>
 15    /// Create <see cref="ValueFilter"/> from filter syntax.
 16    /// </summary>
 17    /// <param name="filterSyntax">The filter micro syntax to create the filter from.</param>
 18    /// <param name="configuration">The filter configuration to use.</param>
 19    public static ValueFilter[] Create(string filterSyntax, FilterConfiguration? configuration = null)
 20    {
 661221        var filters = SplitValues(filterSyntax, configuration);
 661222        return filters.Select(filter => ValueFilter.Create(filter, configuration)).ToArray();
 23    }
 24
 25    private static IEnumerable<string> SplitValues(string? filterSyntax, FilterConfiguration? configuration)
 26    {
 661227        if (filterSyntax == null)
 028            return [];
 29
 661230        configuration ??= FilterConfiguration.Default ?? new FilterConfiguration();
 31
 661232        var escapeCharacter = Regex.Escape(configuration.EscapeCharacter.ToString());
 661233        var separatorCharacters = configuration.ValueSeparatorChars.Select(x => Regex.Escape(x.ToString())).ToList();
 34
 661235        var splitRegex = $"(?<!{escapeCharacter})[{string.Join(string.Empty, separatorCharacters)}]";
 661236        var values = Regex
 661237            .Split(filterSyntax, splitRegex, RegexOptions.None, RegexDefaults.Timeout)
 661238            .ToList();
 39
 661240        return values;
 41    }
 42}
 43
 44/// <inheritdoc cref="ValueFilterFactory"/>
 45[Obsolete($"Use {nameof(ValueFilterFactory)} instead.")]
 46[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "MA0048:File name must match type name", Justification = "Obs
 47public static class ValueFiltersFactory
 48{
 49    /// <inheritdoc cref="ValueFilterFactory.Create(string, FilterConfiguration?)"/>
 50    [Obsolete($"Use {nameof(ValueFilterFactory)}.{nameof(ValueFilterFactory.Create)} instead.")]
 51    public static ValueFilter[] Create(string filterSyntax, FilterConfiguration? configuration = null)
 52        => ValueFilterFactory.Create(filterSyntax, configuration);
 53}