JsonGuidConverterTests.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Globalization;
  3. using System.Text.Json;
  4. using MediaBrowser.Common.Json.Converters;
  5. using Xunit;
  6. namespace Jellyfin.Common.Tests.Json
  7. {
  8. public class JsonGuidConverterTests
  9. {
  10. private readonly JsonSerializerOptions _options;
  11. public JsonGuidConverterTests()
  12. {
  13. _options = new JsonSerializerOptions();
  14. _options.Converters.Add(new JsonGuidConverter());
  15. }
  16. [Fact]
  17. public void Deserialize_Valid_Success()
  18. {
  19. Guid value = JsonSerializer.Deserialize<Guid>(@"""a852a27afe324084ae66db579ee3ee18""", _options);
  20. Assert.Equal(new Guid("a852a27afe324084ae66db579ee3ee18"), value);
  21. }
  22. [Fact]
  23. public void Deserialize_ValidDashed_Success()
  24. {
  25. Guid value = JsonSerializer.Deserialize<Guid>(@"""e9b2dcaa-529c-426e-9433-5e9981f27f2e""", _options);
  26. Assert.Equal(new Guid("e9b2dcaa-529c-426e-9433-5e9981f27f2e"), value);
  27. }
  28. [Fact]
  29. public void Roundtrip_Valid_Success()
  30. {
  31. Guid guid = new Guid("a852a27afe324084ae66db579ee3ee18");
  32. string value = JsonSerializer.Serialize(guid, _options);
  33. Assert.Equal(guid, JsonSerializer.Deserialize<Guid>(value, _options));
  34. }
  35. [Fact]
  36. public void Deserialize_Null_EmptyGuid()
  37. {
  38. Assert.Equal(Guid.Empty, JsonSerializer.Deserialize<Guid>("null", _options));
  39. }
  40. [Fact]
  41. public void Serialize_EmptyGuid_EmptyGuid()
  42. {
  43. Assert.Equal($"\"{Guid.Empty:N}\"", JsonSerializer.Serialize(Guid.Empty, _options));
  44. }
  45. [Fact]
  46. public void Serialize_Valid_NoDash_Success()
  47. {
  48. var guid = new Guid("531797E9-9457-40E0-88BC-B1D6D38752FA");
  49. var str = JsonSerializer.Serialize(guid, _options);
  50. Assert.Equal($"\"{guid:N}\"", str);
  51. }
  52. [Fact]
  53. public void Serialize_Nullable_Success()
  54. {
  55. Guid? guid = new Guid("531797E9-9457-40E0-88BC-B1D6D38752FA");
  56. var str = JsonSerializer.Serialize(guid, _options);
  57. Assert.Equal($"\"{guid:N}\"", str);
  58. }
  59. }
  60. }