Browse Source

Add targeted tests

crobibero 4 years ago
parent
commit
e09dd5aa87
1 changed files with 36 additions and 0 deletions
  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);
+        }
     }
 }