JsonCommaDelimitedArrayTests.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Text.Json;
  2. using System.Text.Json.Serialization;
  3. using Jellyfin.Common.Tests.Models;
  4. using MediaBrowser.Model.Session;
  5. using Xunit;
  6. namespace Jellyfin.Common.Tests.Json
  7. {
  8. public static class JsonCommaDelimitedArrayTests
  9. {
  10. [Fact]
  11. public static void Deserialize_String_Valid_Success()
  12. {
  13. var desiredValue = new GenericBodyModel<string>
  14. {
  15. Value = new[] { "a", "b", "c" }
  16. };
  17. var options = new JsonSerializerOptions();
  18. var value = JsonSerializer.Deserialize<GenericBodyModel<string>>(@"{ ""Value"": ""a,b,c"" }", options);
  19. Assert.Equal(desiredValue.Value, value?.Value);
  20. }
  21. [Fact]
  22. public static void Deserialize_GenericCommandType_Valid_Success()
  23. {
  24. var desiredValue = new GenericBodyModel<GeneralCommandType>
  25. {
  26. Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
  27. };
  28. var options = new JsonSerializerOptions();
  29. options.Converters.Add(new JsonStringEnumConverter());
  30. var value = JsonSerializer.Deserialize<GenericBodyModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp,MoveDown"" }", options);
  31. Assert.Equal(desiredValue.Value, value?.Value);
  32. }
  33. [Fact]
  34. public static void Deserialize_String_Array_Valid_Success()
  35. {
  36. var desiredValue = new GenericBodyModel<string>
  37. {
  38. Value = new[] { "a", "b", "c" }
  39. };
  40. var options = new JsonSerializerOptions();
  41. var value = JsonSerializer.Deserialize<GenericBodyModel<string>>(@"{ ""Value"": [""a"",""b"",""c""] }", options);
  42. Assert.Equal(desiredValue.Value, value?.Value);
  43. }
  44. [Fact]
  45. public static void Deserialize_GenericCommandType_Array_Valid_Success()
  46. {
  47. var desiredValue = new GenericBodyModel<GeneralCommandType>
  48. {
  49. Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
  50. };
  51. var options = new JsonSerializerOptions();
  52. options.Converters.Add(new JsonStringEnumConverter());
  53. var value = JsonSerializer.Deserialize<GenericBodyModel<GeneralCommandType>>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", options);
  54. Assert.Equal(desiredValue.Value, value?.Value);
  55. }
  56. }
  57. }