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.

36 lines
1.2 KiB

  1. using Microsoft.AspNetCore;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.TestHost;
  4. using Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Microsoft.Extensions.Logging;
  7. using System.IO;
  8. namespace Marketing.FunctionalTests.Base
  9. {
  10. public class MarketingScenariosBase
  11. {
  12. public static string CampaignsUrlBase => "api/v1/campaigns";
  13. public TestServer CreateServer()
  14. {
  15. var webHostBuilder = WebHost.CreateDefaultBuilder();
  16. webHostBuilder.UseContentRoot(Directory.GetCurrentDirectory() + "\\Services\\Marketing");
  17. webHostBuilder.UseStartup<MarketingTestsStartup>();
  18. var testServer = new TestServer(webHostBuilder);
  19. testServer.Host
  20. .MigrateDbContext<MarketingContext>((context, services) =>
  21. {
  22. var logger = services.GetService<ILogger<MarketingContextSeed>>();
  23. new MarketingContextSeed()
  24. .SeedAsync(context, logger)
  25. .Wait();
  26. });
  27. return testServer;
  28. }
  29. }
  30. }