JsonCommaDelimitedIReadOnlyListTests.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System.Text.Json;
  2. using System.Text.Json.Serialization;
  3. using Jellyfin.Extensions.Tests.Json.Models;
  4. using MediaBrowser.Model.Session;
  5. using Xunit;
  6. namespace Jellyfin.Extensions.Tests.Json.Converters
  7. {
  8. public class JsonCommaDelimitedIReadOnlyListTests
  9. {
  10. private readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions()
  11. {
  12. Converters =
  13. {
  14. new JsonStringEnumConverter()
  15. }
  16. };
  17. [Fact]
  18. public void Deserialize_String_Valid_Success()
  19. {
  20. var desiredValue = new GenericBodyIReadOnlyListModel<string>
  21. {
  22. Value = new[] { "a", "b", "c" }
  23. };
  24. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<string>>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions);
  25. Assert.Equal(desiredValue.Value, value?.Value);
  26. }
  27. [Fact]
  28. public void Deserialize_String_Space_Valid_Success()
  29. {
  30. var desiredValue = new GenericBodyIReadOnlyListModel<string>
  31. {
  32. Value = new[] { "a", "b", "c" }
  33. };
  34. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<string>>(@"{ ""Value"": ""a, b, c"" }", _jsonOptions);
  35. Assert.Equal(desiredValue.Value, value?.Value);
  36. }
  37. [Fact]
  38. public void Deserialize_GenericCommandType_Valid_Success()
  39. {
  40. var desiredValue = new GenericBodyIReadOnlyListModel<GeneralCommandType>
  41. {
  42. Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
  43. };
  44. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp,MoveDown"" }", _jsonOptions);
  45. Assert.Equal(desiredValue.Value, value?.Value);
  46. }
  47. [Fact]
  48. public void Deserialize_GenericCommandType_Space_Valid_Success()
  49. {
  50. var desiredValue = new GenericBodyIReadOnlyListModel<GeneralCommandType>
  51. {
  52. Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
  53. };
  54. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<GeneralCommandType>>(@"{ ""Value"": ""MoveUp, MoveDown"" }", _jsonOptions);
  55. Assert.Equal(desiredValue.Value, value?.Value);
  56. }
  57. [Fact]
  58. public void Deserialize_String_Array_Valid_Success()
  59. {
  60. var desiredValue = new GenericBodyIReadOnlyListModel<string>
  61. {
  62. Value = new[] { "a", "b", "c" }
  63. };
  64. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<string>>(@"{ ""Value"": [""a"",""b"",""c""] }", _jsonOptions);
  65. Assert.Equal(desiredValue.Value, value?.Value);
  66. }
  67. [Fact]
  68. public void Deserialize_GenericCommandType_Array_Valid_Success()
  69. {
  70. var desiredValue = new GenericBodyIReadOnlyListModel<GeneralCommandType>
  71. {
  72. Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }
  73. };
  74. var value = JsonSerializer.Deserialize<GenericBodyIReadOnlyListModel<GeneralCommandType>>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", _jsonOptions);
  75. Assert.Equal(desiredValue.Value, value?.Value);
  76. }
  77. }
  78. }