< Summary - Code Coverage

Information
Class: Plainquire.Filter.Newtonsoft.JsonConverters.EntityFilterConverter
Assembly: Plainquire.Filter.Newtonsoft
File(s): /home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter.Newtonsoft/JsonConverters/EntityFilterConverter.cs
Tag: 64_13932151703
Line coverage
95%
Covered lines: 21
Uncovered lines: 1
Coverable lines: 22
Total lines: 53
Line coverage: 95.4%
Branch coverage
75%
Covered branches: 9
Total branches: 12
Branch coverage: 75%
Method coverage
100%
Covered methods: 3
Total methods: 3
Method coverage: 100%

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
CanConvert(...)100%22100%
ReadJson(...)75%88100%
WriteJson(...)50%2291.66%

File(s)

/home/runner/work/plainquire/plainquire/Plainquire.Filter/Plainquire.Filter.Newtonsoft/JsonConverters/EntityFilterConverter.cs

#LineLine coverage
 1using Newtonsoft.Json;
 2using Plainquire.Filter.JsonConverters;
 3using System;
 4using System.Diagnostics.CodeAnalysis;
 5
 6namespace Plainquire.Filter.Newtonsoft.JsonConverters;
 7
 8/// <summary>
 9/// <see cref="EntityFilter{TEntity}"/> specific JSON converter for Newtonsoft JSON.
 10/// Implements <see cref="JsonConverter" />
 11/// </summary>
 12/// <seealso cref="JsonConverter" />
 13public class EntityFilterConverter : JsonConverter
 14{
 15    /// <inheritdoc />
 16    public override bool CanConvert(Type objectType)
 8027517        => objectType.IsGenericEntityFilter() || objectType == typeof(EntityFilter);
 18
 19    /// <inheritdoc />
 20    public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer
 21    {
 337222        var entityFilterInstance = Activator.CreateInstance(objectType)
 337223            ?? throw new InvalidOperationException($"Unable to create instance of type {objectType.Name}");
 24
 337225        var entityFilter = (EntityFilter)(entityFilterInstance);
 337226        var entityFilterData = serializer.Deserialize<EntityFilterConverterData>(reader) ?? new EntityFilterConverterDat
 337227        var propertyFilters = Filter.JsonConverters.EntityFilterConverter.GetPropertyFilters(entityFilterData);
 28
 337229        entityFilter.PropertyFilters = propertyFilters ?? [];
 337230        entityFilter.NestedFilters = entityFilterData.NestedFilters ?? [];
 337231        entityFilter.Configuration = entityFilterData.Configuration;
 337232        return entityFilter;
 33    }
 34
 35    /// <inheritdoc />
 36    public override void WriteJson(JsonWriter writer, [NotNull] object? value, JsonSerializer serializer)
 37    {
 336338        if (value == null)
 039            throw new ArgumentNullException(nameof(value));
 40
 336341        var entityFilter = (EntityFilter)value;
 336342        var propertyFiltersData = Filter.JsonConverters.EntityFilterConverter.GetPropertyFilterData(entityFilter);
 43
 336344        var entityFilterData = new EntityFilterConverterData
 336345        {
 336346            PropertyFilters = propertyFiltersData,
 336347            NestedFilters = entityFilter.NestedFilters,
 336348            Configuration = entityFilter.Configuration
 336349        };
 50
 336351        serializer.Serialize(writer, entityFilterData);
 336352    }
 53}