瀏覽代碼

Add targeted tests

crobibero 4 年之前
父節點
當前提交
e09dd5aa87
共有 1 個文件被更改,包括 36 次插入0 次删除
  1. 36 0
      tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs

+ 36 - 0
tests/Jellyfin.Common.Tests/Json/JsonOmdbConverterTests.cs

@@ -1,5 +1,7 @@
 using System.Text.Json;
+using System.Text.Json.Serialization;
 using MediaBrowser.Common.Json;
+using MediaBrowser.Common.Json.Converters;
 using MediaBrowser.Providers.Plugins.Omdb;
 using Xunit;
 
@@ -17,5 +19,39 @@ namespace Jellyfin.Common.Tests.Json
             Assert.Null(seasonRootObject?.Episode);
             Assert.Null(seasonRootObject?.Metascore);
         }
+
+        [Fact]
+        public static void Deserialize_Not_Available_Int_Success()
+        {
+            const string Input = "\"N/A\"";
+            var options = new JsonSerializerOptions
+            {
+                NumberHandling = JsonNumberHandling.AllowReadingFromString,
+                Converters =
+                {
+                    new JsonOmdbNotAvailableStructConverter<int>()
+                }
+            };
+
+            var result = JsonSerializer.Deserialize<int?>(Input, options);
+            Assert.Null(result);
+        }
+
+        [Fact]
+        public static void Deserialize_Not_Available_String_Success()
+        {
+            const string Input = "\"N/A\"";
+            var options = new JsonSerializerOptions
+            {
+                Converters =
+                {
+                    new JsonOmdbNotAvailableStringConverter()
+                }
+            };
+
+            options.Converters.Add(new JsonOmdbNotAvailableStringConverter());
+            var result = JsonSerializer.Deserialize<string>(Input, options);
+            Assert.Null(result);
+        }
     }
 }