ScopeJsonConverterTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. #nullable enable
  2. using System.Text.Json;
  3. namespace UnitTests_Parallelizable.ConfigurationTests;
  4. public class ScopeJsonConverterTests
  5. {
  6. [Theory]
  7. [InlineData ("\"ConfigurationManager.ThrowOnJsonErrors\":true")]
  8. [InlineData ("\"Key.Separator\":\"@\"")]
  9. [InlineData ("\"Themes\":[]")]
  10. [InlineData ("\"Themes\":[{\"themeName\":{}}]")]
  11. [InlineData ("\"Themes\":[{\"themeName\":{\"Dialog.DefaultButtonAlignment\":\"End\"}}]")]
  12. public void RoundTripConversion_Property_Positive (string configPropertyJson)
  13. {
  14. // Arrange
  15. string scopeJson = $"{{{configPropertyJson}}}";
  16. // Act
  17. SettingsScope? deserialized = JsonSerializer.Deserialize<SettingsScope> (scopeJson, ConfigurationManager.SerializerContext.Options);
  18. string? json = JsonSerializer.Serialize<SettingsScope> (deserialized!, ConfigurationManager.SerializerContext.Options);
  19. // Strip all whitespace
  20. json = json.Replace (" ", string.Empty);
  21. json = json.Replace ("\n", string.Empty);
  22. json = json.Replace ("\r", string.Empty);
  23. json = json.Replace ("\t", string.Empty);
  24. // Assert
  25. Assert.Contains (configPropertyJson, json);
  26. }
  27. }