using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Hosting; namespace Basket.FunctionalTests.Base; public class BasketScenarioBase : WebApplicationFactory { private const string ApiUrlBase = "api/v1/basket"; public static class Get { public static string GetBasket(int id) { return $"{ApiUrlBase}/{id}"; } } public static class Post { public static string Basket = $"{ApiUrlBase}/"; public static string CheckoutOrder = $"{ApiUrlBase}/checkout"; } protected override IHost CreateHost(IHostBuilder builder) { builder.ConfigureServices(services => { services.AddSingleton(); }); builder.ConfigureAppConfiguration(c => { var directory = Path.GetDirectoryName(typeof(BasketScenarioBase).Assembly.Location)!; c.AddJsonFile(Path.Combine(directory, "appsettings.json"), optional: false); }); return base.CreateHost(builder); } private class AuthStartupFilter : IStartupFilter { public Action Configure(Action next) { return app => { app.UseMiddleware(); next(app); }; } } }