49 lines
1.8 KiB
C#
49 lines
1.8 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.Globalization;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Microsoft.AspNetCore.Mvc.Testing;
|
|
using Microsoft.AspNetCore.TestHost;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Logging.Testing;
|
|
|
|
namespace Microsoft.AspNetCore.Mvc.FunctionalTests
|
|
{
|
|
public class MvcTestFixture<TStartup> : WebApplicationFactory<TStartup>
|
|
where TStartup : class
|
|
{
|
|
protected override void ConfigureWebHost(IWebHostBuilder builder)
|
|
{
|
|
builder
|
|
.UseRequestCulture<TStartup>("en-GB", "en-US")
|
|
.UseEnvironment("Production")
|
|
.ConfigureServices(
|
|
services =>
|
|
{
|
|
var testSink = new TestSink();
|
|
var loggerFactory = new TestLoggerFactory(testSink, enabled: true);
|
|
services.AddSingleton<ILoggerFactory>(loggerFactory);
|
|
});
|
|
}
|
|
|
|
protected override TestServer CreateServer(IWebHostBuilder builder)
|
|
{
|
|
var originalCulture = CultureInfo.CurrentCulture;
|
|
var originalUICulture = CultureInfo.CurrentUICulture;
|
|
try
|
|
{
|
|
CultureInfo.CurrentCulture = new CultureInfo("en-GB");
|
|
CultureInfo.CurrentUICulture = new CultureInfo("en-US");
|
|
return base.CreateServer(builder);
|
|
}
|
|
finally
|
|
{
|
|
CultureInfo.CurrentCulture = originalCulture;
|
|
CultureInfo.CurrentUICulture = originalUICulture;
|
|
}
|
|
}
|
|
}
|
|
}
|