You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.3 KiB

  1. using Microsoft.AspNetCore.Hosting;
  2. using Microsoft.AspNetCore.TestHost;
  3. using Microsoft.eShopOnContainers.Services.Ordering.API;
  4. using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure;
  5. using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
  6. using Microsoft.Extensions.Configuration;
  7. using Microsoft.Extensions.DependencyInjection;
  8. using Microsoft.Extensions.Logging;
  9. using Microsoft.Extensions.Options;
  10. using System.IO;
  11. using System.Reflection;
  12. namespace FunctionalTests.Services.Ordering
  13. {
  14. public class OrderingScenariosBase
  15. {
  16. public TestServer CreateServer()
  17. {
  18. var path = Assembly.GetAssembly(typeof(OrderingScenariosBase))
  19. .Location;
  20. var hostBuilder = new WebHostBuilder()
  21. .UseContentRoot(Path.GetDirectoryName(path))
  22. .ConfigureAppConfiguration(cb =>
  23. {
  24. cb.AddJsonFile("Services/Ordering/appsettings.json", optional: false)
  25. .AddEnvironmentVariables();
  26. }).UseStartup<OrderingTestsStartup>();
  27. var testServer = new TestServer(hostBuilder);
  28. testServer.Host
  29. .MigrateDbContext<OrderingContext>((context, services) =>
  30. {
  31. var env = services.GetService<IHostingEnvironment>();
  32. var settings = services.GetService<IOptions<OrderingSettings>>();
  33. var logger = services.GetService<ILogger<OrderingContextSeed>>();
  34. new OrderingContextSeed()
  35. .SeedAsync(context, env, settings, logger)
  36. .Wait();
  37. });
  38. return testServer;
  39. }
  40. public static class Get
  41. {
  42. public static string Orders = "api/v1/orders";
  43. public static string OrderBy(int id)
  44. {
  45. return $"api/v1/orders/{id}";
  46. }
  47. }
  48. public static class Post
  49. {
  50. public static string AddNewOrder = "api/v1/orders/new";
  51. }
  52. public static class Put
  53. {
  54. public static string CancelOrder = "api/v1/orders/cancel";
  55. }
  56. public static class Delete
  57. {
  58. public static string OrderBy(int id)
  59. {
  60. return $"api/v1/orders/{id}";
  61. }
  62. }
  63. }
  64. }