JsonBoolNumberTests.cs 1.3 KB

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