|
@@ -1,4 +1,5 @@
|
|
|
-using System.Text.Json;
|
|
|
+using System;
|
|
|
+using System.Text.Json;
|
|
|
using System.Text.Json.Serialization;
|
|
|
using Jellyfin.Common.Tests.Models;
|
|
|
using MediaBrowser.Model.Session;
|
|
@@ -8,6 +9,27 @@ namespace Jellyfin.Common.Tests.Json
|
|
|
{
|
|
|
public static class JsonCommaDelimitedArrayTests
|
|
|
{
|
|
|
+ [Fact]
|
|
|
+ public static void Deserialize_String_Null_Success()
|
|
|
+ {
|
|
|
+ var options = new JsonSerializerOptions();
|
|
|
+ var value = JsonSerializer.Deserialize<GenericBodyArrayModel<string>>(@"{ ""Value"": null }", options);
|
|
|
+ Assert.Null(value?.Value);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public static void Deserialize_Empty_Success()
|
|
|
+ {
|
|
|
+ var desiredValue = new GenericBodyArrayModel<string>
|
|
|
+ {
|
|
|
+ Value = Array.Empty<string>()
|
|
|
+ };
|
|
|
+
|
|
|
+ var options = new JsonSerializerOptions();
|
|
|
+ var value = JsonSerializer.Deserialize<GenericBodyArrayModel<string>>(@"{ ""Value"": """" }", options);
|
|
|
+ Assert.Equal(desiredValue.Value, value?.Value);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public static void Deserialize_String_Valid_Success()
|
|
|
{
|
|
@@ -48,6 +70,34 @@ namespace Jellyfin.Common.Tests.Json
|
|
|
Assert.Equal(desiredValue.Value, value?.Value);
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public static void Deserialize_GenericCommandType_EmptyEntry_Success()
|
|
|
+ {
|
|
|
+ var desiredValue = new GenericBodyArrayModel<GeneralCommandType>
|
|
|
+ {
|
|
|
+ Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
|
|
|
+ };
|
|
|
+
|
|
|
+ var options = new JsonSerializerOptions();
|
|
|
+ options.Converters.Add(new JsonStringEnumConverter());
|
|
|
+ var value = JsonSerializer.Deserialize<GenericBodyArrayModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp,,MoveDown"" }", options);
|
|
|
+ Assert.Equal(desiredValue.Value, value?.Value);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ public static void Deserialize_GenericCommandType_Invalid_Success()
|
|
|
+ {
|
|
|
+ var desiredValue = new GenericBodyArrayModel<GeneralCommandType>
|
|
|
+ {
|
|
|
+ Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
|
|
|
+ };
|
|
|
+
|
|
|
+ var options = new JsonSerializerOptions();
|
|
|
+ options.Converters.Add(new JsonStringEnumConverter());
|
|
|
+ var value = JsonSerializer.Deserialize<GenericBodyArrayModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp,TotallyNotAVallidCommand,MoveDown"" }", options);
|
|
|
+ Assert.Equal(desiredValue.Value, value?.Value);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public static void Deserialize_GenericCommandType_Space_Valid_Success()
|
|
|
{
|