Add whitespace handling and tests

This commit is contained in:
crobibero 2020-10-16 09:37:35 -06:00
parent 7565ae22cb
commit b2662894cf
2 changed files with 28 additions and 1 deletions

View File

@ -35,7 +35,7 @@ namespace MediaBrowser.Common.Json.Converters
var entries = new T[stringEntries.Length];
for (var i = 0; i < stringEntries.Length; i++)
{
entries[i] = (T)_typeConverter.ConvertFrom(stringEntries[i]);
entries[i] = (T)_typeConverter.ConvertFrom(stringEntries[i].Trim());
}
return entries;

View File

@ -21,6 +21,19 @@ namespace Jellyfin.Common.Tests.Json
Assert.Equal(desiredValue.Value, value?.Value);
}
[Fact]
public static void Deserialize_String_Space_Valid_Success()
{
var desiredValue = new GenericBodyModel<string>
{
Value = new[] { "a", "b", "c" }
};
var options = new JsonSerializerOptions();
var value = JsonSerializer.Deserialize<GenericBodyModel<string>>(@"{ ""Value"": ""a, b, c"" }", options);
Assert.Equal(desiredValue.Value, value?.Value);
}
[Fact]
public static void Deserialize_GenericCommandType_Valid_Success()
{
@ -35,6 +48,20 @@ namespace Jellyfin.Common.Tests.Json
Assert.Equal(desiredValue.Value, value?.Value);
}
[Fact]
public static void Deserialize_GenericCommandType_Space_Valid_Success()
{
var desiredValue = new GenericBodyModel<GeneralCommandType>
{
Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
};
var options = new JsonSerializerOptions();
options.Converters.Add(new JsonStringEnumConverter());
var value = JsonSerializer.Deserialize<GenericBodyModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp, MoveDown"" }", options);
Assert.Equal(desiredValue.Value, value?.Value);
}
[Fact]
public static void Deserialize_String_Array_Valid_Success()
{