< Summary - Jellyfin

Information
Class: Jellyfin.Extensions.Json.Converters.JsonDefaultStringEnumConverterFactory
Assembly: Jellyfin.Extensions
File(s): /srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonDefaultStringEnumConverterFactory.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 31
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
CanConvert(...)100%22100%
CreateConverter(...)100%11100%

File(s)

/srv/git/jellyfin/src/Jellyfin.Extensions/Json/Converters/JsonDefaultStringEnumConverterFactory.cs

#LineLine coverage
 1using System;
 2using System.ComponentModel;
 3using System.Reflection;
 4using System.Text.Json;
 5using System.Text.Json.Serialization;
 6
 7namespace Jellyfin.Extensions.Json.Converters;
 8
 9/// <summary>
 10/// Utilizes the JsonStringEnumConverter and sets a default value if not provided.
 11/// </summary>
 12public class JsonDefaultStringEnumConverterFactory : JsonConverterFactory
 13{
 614    private static readonly JsonStringEnumConverter _baseConverterFactory = new();
 15
 16    /// <inheritdoc />
 17    public override bool CanConvert(Type typeToConvert)
 18    {
 77819        return _baseConverterFactory.CanConvert(typeToConvert)
 77820               && typeToConvert.IsDefined(typeof(DefaultValueAttribute));
 21    }
 22
 23    /// <inheritdoc />
 24    public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options)
 25    {
 1926        var baseConverter = _baseConverterFactory.CreateConverter(typeToConvert, options);
 1927        var converterType = typeof(JsonDefaultStringEnumConverter<>).MakeGenericType(typeToConvert);
 28
 1929        return (JsonConverter?)Activator.CreateInstance(converterType, baseConverter);
 30    }
 31}