< Summary

Information
Class: TeleFlow.Framework.States.JsonStateDataSerializer
Assembly: TeleFlow.Framework.Core
File(s): /_/src/TeleFlow.Framework.Core/States/JsonStateDataSerializer.cs
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
Total lines: 33
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
Serialize(...)100%11100%
Deserialize(...)100%11100%

File(s)

/_/src/TeleFlow.Framework.Core/States/JsonStateDataSerializer.cs

#LineLine coverage
 1using System.Text.Json;
 2
 3namespace TeleFlow.Framework.States;
 4
 5public sealed class JsonStateDataSerializer : IStateDataSerializer
 6{
 17    private static readonly JsonSerializerOptions DefaultOptions = new(JsonSerializerDefaults.General);
 8
 9    private readonly JsonSerializerOptions _options;
 10
 11    public JsonStateDataSerializer()
 3312        : this(DefaultOptions)
 13    {
 3314    }
 15
 16    public JsonStateDataSerializer(JsonSerializerOptions options)
 17    {
 3318        ArgumentNullException.ThrowIfNull(options);
 3319        _options = options;
 3320    }
 21
 22    public string Serialize<TValue>(TValue value)
 23    {
 1124        ArgumentNullException.ThrowIfNull(value);
 1125        return JsonSerializer.Serialize(value, _options);
 26    }
 27
 28    public TValue? Deserialize<TValue>(string value)
 29    {
 1030        ArgumentException.ThrowIfNullOrWhiteSpace(value);
 1031        return JsonSerializer.Deserialize<TValue>(value, _options);
 32    }
 33}