|
|
@ -1,37 +1,39 @@ |
|
|
|
namespace FunctionalTests.Services.Catalog; |
|
|
|
|
|
|
|
using FunctionalTests.Services.Ordering; |
|
|
|
using Microsoft.AspNetCore.Mvc.Testing; |
|
|
|
using Microsoft.eShopOnContainers.Services.Catalog.API; |
|
|
|
using Microsoft.Extensions.Hosting; |
|
|
|
|
|
|
|
public class CatalogScenariosBase |
|
|
|
public class CatalogScenariosBase : WebApplicationFactory<CatalogProgram> |
|
|
|
{ |
|
|
|
public TestServer CreateServer() |
|
|
|
{ |
|
|
|
var path = Assembly.GetAssembly(typeof(CatalogScenariosBase)) |
|
|
|
.Location; |
|
|
|
|
|
|
|
var hostBuilder = new WebHostBuilder() |
|
|
|
.UseContentRoot(Path.GetDirectoryName(path)) |
|
|
|
.ConfigureAppConfiguration(cb => |
|
|
|
{ |
|
|
|
cb.AddJsonFile("Services/Catalog/appsettings.json", optional: false) |
|
|
|
.AddEnvironmentVariables(); |
|
|
|
}); |
|
|
|
|
|
|
|
var testServer = new TestServer(hostBuilder); |
|
|
|
|
|
|
|
testServer.Host |
|
|
|
.MigrateDbContext<CatalogContext>((context, services) => |
|
|
|
{ |
|
|
|
var env = services.GetService<IWebHostEnvironment>(); |
|
|
|
var settings = services.GetService<IOptions<CatalogSettings>>(); |
|
|
|
var logger = services.GetService<ILogger<CatalogContextSeed>>(); |
|
|
|
|
|
|
|
new CatalogContextSeed() |
|
|
|
.SeedAsync(context, env, settings, logger) |
|
|
|
.Wait(); |
|
|
|
}) |
|
|
|
.MigrateDbContext<IntegrationEventLogContext>((_, __) => { }); |
|
|
|
|
|
|
|
return testServer; |
|
|
|
Services.MigrateDbContext<CatalogContext>((context, services) => |
|
|
|
{ |
|
|
|
var env = services.GetService<IWebHostEnvironment>(); |
|
|
|
var settings = services.GetService<IOptions<CatalogSettings>>(); |
|
|
|
var logger = services.GetService<ILogger<CatalogContextSeed>>(); |
|
|
|
|
|
|
|
new CatalogContextSeed() |
|
|
|
.SeedAsync(context, env, settings, logger) |
|
|
|
.Wait(); |
|
|
|
}) |
|
|
|
.MigrateDbContext<IntegrationEventLogContext>((_, __) => { }); |
|
|
|
|
|
|
|
return Server; |
|
|
|
} |
|
|
|
|
|
|
|
protected override IHost CreateHost(IHostBuilder builder) |
|
|
|
{ |
|
|
|
builder.ConfigureAppConfiguration(c => |
|
|
|
{ |
|
|
|
var directory = Path.GetDirectoryName(typeof(CatalogScenariosBase).Assembly.Location)!; |
|
|
|
|
|
|
|
c.AddJsonFile(Path.Combine(directory, "Services/Catalog/appsettings.json"), optional: false); |
|
|
|
}); |
|
|
|
|
|
|
|
return base.CreateHost(builder); |
|
|
|
} |
|
|
|
|
|
|
|
public static class Get |
|
|
|