< Summary

Information
Class: Elsa.Secrets.Models.OrdinalIgnoreCaseDictionaryConverter
Assembly: Elsa.Secrets
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Secrets/Models/OrdinalIgnoreCaseDictionaryConverter.cs
Line coverage
76%
Covered lines: 19
Uncovered lines: 6
Coverable lines: 25
Total lines: 50
Line coverage: 76%
Branch coverage
70%
Covered branches: 14
Total branches: 20
Branch coverage: 70%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Read(...)66.66%271870%
Write(...)100%22100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Secrets/Models/OrdinalIgnoreCaseDictionaryConverter.cs

#LineLine coverage
 1using System.Text.Json;
 2using System.Text.Json.Serialization;
 3
 4namespace Elsa.Secrets.Models;
 5
 6public class OrdinalIgnoreCaseDictionaryConverter : JsonConverter<IDictionary<string, string>>
 7{
 8    public override IDictionary<string, string> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOption
 9    {
 210        if (reader.TokenType == JsonTokenType.Null)
 011            return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
 12
 213        if (reader.TokenType != JsonTokenType.StartObject)
 014            throw new JsonException("Expected an object of string metadata values.");
 15
 216        var values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
 417        while (reader.Read())
 18        {
 419            if (reader.TokenType == JsonTokenType.EndObject)
 220                return values;
 21
 222            if (reader.TokenType != JsonTokenType.PropertyName)
 023                throw new JsonException("Expected a metadata property name.");
 24
 225            var key = reader.GetString()!;
 226            if (!reader.Read())
 027                throw new JsonException("Unexpected end of JSON while reading secret metadata.");
 28
 229            if (reader.TokenType == JsonTokenType.Null)
 30                continue;
 31
 232            if (reader.TokenType != JsonTokenType.String)
 033                throw new JsonException("Expected a string metadata value.");
 34
 235            var value = reader.GetString();
 236            if (value != null)
 237                values[key] = value;
 38        }
 39
 040        throw new JsonException("Unexpected end of JSON while reading secret metadata.");
 41    }
 42
 43    public override void Write(Utf8JsonWriter writer, IDictionary<string, string> value, JsonSerializerOptions options)
 44    {
 345        writer.WriteStartObject();
 1546        foreach (var item in value.OrderBy(x => x.Key, StringComparer.OrdinalIgnoreCase))
 347            writer.WriteString(item.Key, item.Value);
 348        writer.WriteEndObject();
 349    }
 50}