using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.Configuration; using System.IO; using System.Reflection; namespace FunctionalTests.Services.Basket { public class BasketScenariosBase { private const string ApiUrlBase = "api/v1/basket"; public TestServer CreateServer() { var path = Assembly.GetAssembly(typeof(BasketScenariosBase)) .Location; var hostBuilder = new WebHostBuilder() .UseContentRoot(Path.GetDirectoryName(path)) .ConfigureAppConfiguration(cb => { cb.AddJsonFile("Services/Basket/appsettings.json", optional: false) .AddEnvironmentVariables(); }).UseStartup(); return new TestServer(hostBuilder); } public static class Get { public static string GetBasket(int id) { return $"{ApiUrlBase}/{id}"; } public static string GetBasketByCustomer(string customerId) { return $"{ApiUrlBase}/{customerId}"; } } public static class Post { public static string CreateBasket = $"{ApiUrlBase}/"; public static string CheckoutOrder = $"{ApiUrlBase}/checkout"; } } }