| File: UseCultureAttribute.cs | Web Access |
| Project: src\aspnetcore\src\Testing\src\Microsoft.AspNetCore.InternalTesting.csproj (Microsoft.AspNetCore.InternalTesting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Globalization; using System.Reflection; using Xunit.Sdk; namespace Microsoft.AspNetCore.InternalTesting; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public sealed class UseCultureAttribute : BeforeAfterTestAttribute { private CultureInfo _originalCulture; private CultureInfo _originalUiCulture; public UseCultureAttribute(string culture) : this(culture, culture) { } public UseCultureAttribute(string culture, string uiCulture) { Culture = new CultureInfo(culture); UiCulture = new CultureInfo(uiCulture); } public CultureInfo Culture { get; } public CultureInfo UiCulture { get; } public override void Before(MethodInfo methodUnderTest) { _originalCulture = CultureInfo.CurrentCulture; _originalUiCulture = CultureInfo.CurrentUICulture; CultureInfo.CurrentCulture = Culture; CultureInfo.CurrentUICulture = UiCulture; } public override void After(MethodInfo methodUnderTest) { CultureInfo.CurrentCulture = _originalCulture; CultureInfo.CurrentUICulture = _originalUiCulture; } }