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<BasketTestsStartup>();
|
|
|
|
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";
|
|
}
|
|
}
|
|
}
|