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.5 KiB

  1. using Microsoft.AspNetCore;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.TestHost;
  4. using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
  5. using Microsoft.eShopOnContainers.Services.Ordering.API;
  6. using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure;
  7. using Microsoft.eShopOnContainers.Services.Ordering.Infrastructure;
  8. using Microsoft.Extensions.Configuration;
  9. using Microsoft.Extensions.DependencyInjection;
  10. using Microsoft.Extensions.Logging;
  11. using Microsoft.Extensions.Options;
  12. using System.IO;
  13. namespace Ordering.FunctionalTests.Base
  14. {
  15. public class OrderingScenariosBase
  16. {
  17. public TestServer CreateServer()
  18. {
  19. var webHostBuilder = WebHost.CreateDefaultBuilder();
  20. webHostBuilder.UseContentRoot(Directory.GetCurrentDirectory() + "\\Services\\Ordering");
  21. webHostBuilder.UseStartup<OrderingTestsStartup>();
  22. webHostBuilder.ConfigureAppConfiguration((builderContext, config) =>
  23. {
  24. config.AddJsonFile("settings.json");
  25. });
  26. var testServer = new TestServer(webHostBuilder);
  27. testServer.Host
  28. .MigrateDbContext<OrderingContext>((context, services) =>
  29. {
  30. var env = services.GetService<IHostingEnvironment>();
  31. var settings = services.GetService<IOptions<OrderingSettings>>();
  32. var logger = services.GetService<ILogger<OrderingContextSeed>>();
  33. new OrderingContextSeed()
  34. .SeedAsync(context, env, settings, logger)
  35. .Wait();
  36. })
  37. .MigrateDbContext<IntegrationEventLogContext>((_, __) => { });
  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. public static string ShipOrder = "api/v1/orders/ship";
  56. }
  57. public static class Delete
  58. {
  59. public static string OrderBy(int id)
  60. {
  61. return $"api/v1/orders/{id}";
  62. }
  63. }
  64. }
  65. }