diff options
| author | crobibero <cody@robibe.ro> | 2020-12-07 14:58:27 -0700 |
|---|---|---|
| committer | crobibero <cody@robibe.ro> | 2020-12-07 14:58:27 -0700 |
| commit | 6e9837844738de7bc55dae9994538535e62ed888 (patch) | |
| tree | e085338816b2d33625e080164743444ce0fc38a0 | |
| parent | 66a1880a580b25db7add41ed3947166b10415f37 (diff) | |
Simplify converter
4 files changed, 6 insertions, 25 deletions
diff --git a/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs b/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs index f73ca344c..cb2047049 100644 --- a/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs +++ b/MediaBrowser.Common/Json/Converters/JsonBoolNumberConverter.cs @@ -8,9 +8,6 @@ namespace MediaBrowser.Common.Json.Converters /// Converts a number to a boolean. /// This is needed for HDHomerun. /// </summary> - /// <remarks> - /// Adding this to the JsonConverter list causes recursion. - /// </remarks> public class JsonBoolNumberConverter : JsonConverter<bool> { /// <inheritdoc /> @@ -21,7 +18,7 @@ namespace MediaBrowser.Common.Json.Converters return Convert.ToBoolean(reader.GetInt32()); } - return JsonSerializer.Deserialize<bool>(ref reader, options); + return reader.GetBoolean(); } /// <inheritdoc /> diff --git a/MediaBrowser.Common/Json/JsonDefaults.cs b/MediaBrowser.Common/Json/JsonDefaults.cs index c5050a21d..b76edd2bc 100644 --- a/MediaBrowser.Common/Json/JsonDefaults.cs +++ b/MediaBrowser.Common/Json/JsonDefaults.cs @@ -43,6 +43,7 @@ namespace MediaBrowser.Common.Json options.Converters.Add(new JsonVersionConverter()); options.Converters.Add(new JsonStringEnumConverter()); options.Converters.Add(new JsonNullableStructConverterFactory()); + options.Converters.Add(new JsonBoolNumberConverter()); return options; } diff --git a/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs b/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs index 1cae5b849..3779e2d0a 100644 --- a/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs +++ b/tests/Jellyfin.Common.Tests/Json/JsonBoolNumberTests.cs @@ -1,5 +1,5 @@ using System.Text.Json; -using Jellyfin.Common.Tests.Models; +using MediaBrowser.Common.Json.Converters; using Xunit; namespace Jellyfin.Common.Tests.Json @@ -14,10 +14,10 @@ namespace Jellyfin.Common.Tests.Json [InlineData("false", false)] public static void Deserialize_Number_Valid_Success(string input, bool? output) { - var inputJson = $"{{ \"Value\": {input} }}"; var options = new JsonSerializerOptions(); - var value = JsonSerializer.Deserialize<BoolTypeModel>(inputJson, options); - Assert.Equal(value?.Value, output); + options.Converters.Add(new JsonBoolNumberConverter()); + var value = JsonSerializer.Deserialize<bool>(input, options); + Assert.Equal(value, output); } } }
\ No newline at end of file diff --git a/tests/Jellyfin.Common.Tests/Models/BoolTypeModel.cs b/tests/Jellyfin.Common.Tests/Models/BoolTypeModel.cs deleted file mode 100644 index feb952efc..000000000 --- a/tests/Jellyfin.Common.Tests/Models/BoolTypeModel.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Text.Json.Serialization; -using MediaBrowser.Common.Json.Converters; - -namespace Jellyfin.Common.Tests.Models -{ - /// <summary> - /// The bool type model. - /// </summary> - public class BoolTypeModel - { - /// <summary> - /// Gets or sets a value indicating whether the value is true or false. - /// </summary> - [JsonConverter(typeof(JsonBoolNumberConverter))] - public bool Value { get; set; } - } -}
\ No newline at end of file |
