JsonBoolNumberTests.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Globalization;
  2. using System.Text.Json;
  3. using FsCheck;
  4. using FsCheck.Xunit;
  5. using Jellyfin.Extensions.Json.Converters;
  6. using Xunit;
  7. namespace Jellyfin.Extensions.Tests.Json.Converters
  8. {
  9. public class JsonBoolNumberTests
  10. {
  11. private readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions()
  12. {
  13. Converters =
  14. {
  15. new JsonBoolNumberConverter()
  16. }
  17. };
  18. [Theory]
  19. [InlineData("1", true)]
  20. [InlineData("0", false)]
  21. [InlineData("2", true)]
  22. [InlineData("true", true)]
  23. [InlineData("false", false)]
  24. public void Deserialize_Number_Valid_Success(string input, bool? output)
  25. {
  26. var value = JsonSerializer.Deserialize<bool>(input, _jsonOptions);
  27. Assert.Equal(value, output);
  28. }
  29. [Theory]
  30. [InlineData(true, "true")]
  31. [InlineData(false, "false")]
  32. public void Serialize_Bool_Success(bool input, string output)
  33. {
  34. var value = JsonSerializer.Serialize(input, _jsonOptions);
  35. Assert.Equal(value, output);
  36. }
  37. [Property]
  38. public Property Deserialize_NonZeroInt_True(NonZeroInt input)
  39. => JsonSerializer.Deserialize<bool>(input.ToString(), _jsonOptions).ToProperty();
  40. }
  41. }