1
0

UseEmptyDesignatorCultureAttribute.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #nullable enable
  2. using System;
  3. using System.Globalization;
  4. using System.Reflection;
  5. using Xunit.Sdk;
  6. namespace Avalonia.UnitTests;
  7. [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
  8. public sealed class UseEmptyDesignatorCultureAttribute : BeforeAfterTestAttribute
  9. {
  10. private CultureInfo? _previousCulture;
  11. private CultureInfo? _previousUICulture;
  12. private CultureInfo CultureInfo { get; } =
  13. new(string.Empty, false) { DateTimeFormat = { AMDesignator = string.Empty, PMDesignator = string.Empty } };
  14. public override void Before(MethodInfo methodUnderTest)
  15. {
  16. base.Before(methodUnderTest);
  17. _previousCulture = CultureInfo.CurrentCulture;
  18. _previousUICulture = CultureInfo.CurrentUICulture;
  19. CultureInfo.CurrentCulture = CultureInfo;
  20. CultureInfo.CurrentUICulture = CultureInfo;
  21. }
  22. public override void After(MethodInfo methodUnderTest)
  23. {
  24. CultureInfo.CurrentCulture = _previousCulture!;
  25. CultureInfo.CurrentUICulture = _previousUICulture!;
  26. base.After(methodUnderTest);
  27. }
  28. }