< 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    {
 110        if (reader.TokenType == JsonTokenType.Null)
 011            return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
 12
 113        if (reader.TokenType != JsonTokenType.StartObject)
 014            throw new JsonException("Expected an object of string metadata values.");
 15
 116        var values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
 217        while (reader.Read())
 18        {
 219            if (reader.TokenType == JsonTokenType.EndObject)
 120                return values;
 21
 122            if (reader.TokenType != JsonTokenType.PropertyName)
 023                throw new JsonException("Expected a metadata property name.");
 24
 125            var key = reader.GetString()!;
 126            if (!reader.Read())
 027                throw new JsonException("Unexpected end of JSON while reading secret metadata.");
 28
 129            if (reader.TokenType == JsonTokenType.Null)
 30                continue;
 31
 132            if (reader.TokenType != JsonTokenType.String)
 033                throw new JsonException("Expected a string metadata value.");
 34
 135            var value = reader.GetString();
 136            if (value != null)
 137                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    {
 245        writer.WriteStartObject();
 1046        foreach (var item in value.OrderBy(x => x.Key, StringComparer.OrdinalIgnoreCase))
 247            writer.WriteString(item.Key, item.Value);
 248        writer.WriteEndObject();
 249    }
 50}