< Summary - Code Coverage

Information
Class: Plainquire.Page.Newtonsoft.JsonConverters.EntityPageConverter
Assembly: Plainquire.Page.Newtonsoft
File(s): /home/runner/work/plainquire/plainquire/Plainquire.Page/Plainquire.Page.Newtonsoft/JsonConverters/EntityPageConverter.cs
Tag: 64_13932151703
Line coverage
95%
Covered lines: 19
Uncovered lines: 1
Coverable lines: 20
Total lines: 49
Line coverage: 95%
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%
WriteJson(...)50%2290.9%
ReadJson(...)75%88100%

File(s)

/home/runner/work/plainquire/plainquire/Plainquire.Page/Plainquire.Page.Newtonsoft/JsonConverters/EntityPageConverter.cs

#LineLine coverage
 1using Newtonsoft.Json;
 2using Plainquire.Page.JsonConverters;
 3using System;
 4using System.Diagnostics.CodeAnalysis;
 5
 6namespace Plainquire.Page.Newtonsoft.JsonConverters;
 7
 8/// <summary>
 9/// <see cref="EntityPage"/> specific JSON converter for Newtonsoft JSON.
 10/// Implements <see cref="JsonConverter" />
 11/// </summary>
 12/// <seealso cref="JsonConverter" />
 13public class EntityPageConverter : JsonConverter
 14{
 15    /// <inheritdoc />
 16    public override bool CanConvert(Type objectType)
 82917        => objectType.IsEntityPage() || objectType == typeof(EntityPage);
 18
 19    /// <inheritdoc />
 20    public override void WriteJson(JsonWriter writer, [NotNull] object? value, JsonSerializer serializer)
 21    {
 8222        if (value == null)
 023            throw new ArgumentNullException(nameof(value));
 24
 8225        var entityPage = (EntityPage)value;
 8226        var entityPageData = new EntityPageData
 8227        {
 8228            PageNumber = entityPage.PageNumberValue,
 8229            PageSize = entityPage.PageSizeValue,
 8230            Configuration = entityPage.Configuration
 8231        };
 32
 8233        serializer.Serialize(writer, entityPageData);
 8234    }
 35
 36    /// <inheritdoc />
 37    public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer
 38    {
 8239        var entityPageInstance = Activator.CreateInstance(objectType)
 8240            ?? throw new InvalidOperationException($"Unable to create instance of type {objectType.Name}");
 41
 8242        var entityPage = (EntityPage)entityPageInstance;
 8243        var entityPageData = serializer.Deserialize<EntityPageData>(reader) ?? new EntityPageData();
 8244        entityPage.PageNumberValue = entityPageData.PageNumber ?? string.Empty;
 8245        entityPage.PageSizeValue = entityPageData.PageSize ?? string.Empty;
 8246        entityPage.Configuration = entityPageData.Configuration;
 8247        return entityPage;
 48    }
 49}