Skip to content

Commit 48bc95f

Browse files
author
ericuss
committed
Fix functional tests of Marketing
1 parent 44af7aa commit 48bc95f

5 files changed

Lines changed: 3 additions & 90 deletions

File tree

src/BuildingBlocks/WebHostCustomization/WebHost.Customization/WebHostExtensions.cs

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ public static IWebHost MigrateDbContext<TContext>(this IWebHost webHost, Action<
2424
using (var scope = webHost.Services.CreateScope())
2525
{
2626
var services = scope.ServiceProvider;
27-
2827
var logger = services.GetRequiredService<ILogger<TContext>>();
29-
3028
var context = services.GetService<TContext>();
3129

3230
try
@@ -60,7 +58,6 @@ public static IWebHost MigrateDbContext<TContext>(this IWebHost webHost, Action<
6058
}
6159
catch (Exception ex)
6260
{
63-
Console.WriteLine(ex.Message.ToString() + "An error occurred while migrating the database used on context {DbContextName}" + typeof(TContext).Name);
6461
logger.LogError(ex, "An error occurred while migrating the database used on context {DbContextName}", typeof(TContext).Name);
6562
if (underK8s)
6663
{
@@ -72,72 +69,11 @@ public static IWebHost MigrateDbContext<TContext>(this IWebHost webHost, Action<
7269
return webHost;
7370
}
7471

75-
76-
public static IWebHost RemoveDbContext<TContext>(this IWebHost webHost) where TContext : DbContext
77-
{
78-
var underK8s = webHost.IsInKubernetes();
79-
80-
using (var scope = webHost.Services.CreateScope())
81-
{
82-
var services = scope.ServiceProvider;
83-
var logger = services.GetRequiredService<ILogger<TContext>>();
84-
var context = services.GetService<TContext>();
85-
86-
try
87-
{
88-
logger.LogInformation("Deleting the database associated with context {DbContextName}" + typeof(TContext).Name);
89-
90-
if (underK8s)
91-
{
92-
InvokeRemover(context);
93-
}
94-
else
95-
{
96-
var retries = 10;
97-
var retry = Policy.Handle<SqlException>()
98-
.WaitAndRetry(
99-
retryCount: retries,
100-
sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
101-
onRetry: (exception, timeSpan, retry, ctx) =>
102-
{
103-
Console.WriteLine(" --RETRYING Exception " + exception.Message.ToString());
104-
logger.LogWarning(exception, "[{prefix}] Exception {ExceptionType} with message {Message} detected on attempt {retry} of {retries}", nameof(TContext), exception.GetType().Name, exception.Message, retry, retries);
105-
});
106-
107-
//if the sql server container is not created on run docker compose this
108-
//migration can't fail for network related exception. The retry options for DbContext only
109-
//apply to transient exceptions
110-
// Note that this is NOT applied when running some orchestrators (let the orchestrator to recreate the failing service)
111-
retry.Execute(() => InvokeRemover(context));
112-
}
113-
114-
Console.WriteLine("Deleted database associated with context {DbContextName}", typeof(TContext).Name);
115-
logger.LogInformation("Deleted database associated with context {DbContextName}", typeof(TContext).Name);
116-
}
117-
catch (Exception ex)
118-
{
119-
Console.WriteLine(ex.Message.ToString() + "An error occurred while deleting the database used on context {DbContextName}" + typeof(TContext).Name);
120-
logger.LogError(ex, "An error occurred while deleting the database used on context {DbContextName}", typeof(TContext).Name);
121-
if (underK8s)
122-
{
123-
throw; // Rethrow under k8s because we rely on k8s to re-run the pod
124-
}
125-
}
126-
}
127-
128-
return webHost;
129-
}
130-
13172
private static void InvokeSeeder<TContext>(Action<TContext, IServiceProvider> seeder, TContext context, IServiceProvider services)
13273
where TContext : DbContext
13374
{
13475
context.Database.Migrate();
13576
seeder(context, services);
13677
}
137-
private static void InvokeRemover<TContext>(TContext context)
138-
where TContext : DbContext
139-
{
140-
context.Database.EnsureDeleted();
141-
}
14278
}
14379
}

src/Services/Marketing/Marketing.API/Infrastructure/MarketingContext.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,10 @@ public MarketingContext CreateDbContext(string[] args)
3535
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
3636
.AddEnvironmentVariables()
3737
.Build();
38-
var connectionString = configuration["ConnectionString"];
39-
Console.WriteLine(" -- Connection string");
40-
Console.WriteLine(connectionString);
4138

39+
var connectionString = configuration["ConnectionString"];
4240
var optionsBuilder = new DbContextOptionsBuilder<MarketingContext>()
4341
.UseSqlServer(connectionString);
44-
// .UseSqlServer("Server=.;Initial Catalog=Microsoft.eShopOnContainers.Services.MarketingDb;Integrated Security=true");
4542
return new MarketingContext(optionsBuilder.Options);
4643
}
4744
}

src/Services/Marketing/Marketing.FunctionalTests/CampaignScenarios.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace Marketing.FunctionalTests
1111
{
12+
[Collection("Sequential")]
1213
public class CampaignScenarios
1314
: CampaignScenarioBase
1415
{

src/Services/Marketing/Marketing.FunctionalTests/MarketingScenarioBase.cs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@ public class MarketingScenarioBase
2020

2121
public TestServer CreateServer()
2222
{
23-
24-
Console.WriteLine(" Creating test server");
2523
var path = Assembly.GetAssembly(typeof(MarketingScenarioBase))
2624
.Location;
2725

28-
Console.WriteLine(" Creating builder");
29-
3026
var hostBuilder = new WebHostBuilder()
3127
.UseContentRoot(Path.GetDirectoryName(path))
3228
.ConfigureAppConfiguration(cb =>
@@ -37,22 +33,9 @@ public TestServer CreateServer()
3733
.CaptureStartupErrors(true)
3834
.UseStartup<MarketingTestsStartup>();
3935

40-
Console.WriteLine(" Created builder");
41-
4236
var testServer = new TestServer(hostBuilder);
4337

44-
using (var scope = testServer.Services.CreateScope())
45-
{
46-
var services = scope.ServiceProvider;
47-
48-
var logger = services.GetRequiredService<ILogger<MarketingScenarioBase>>();
49-
var settings = services.GetRequiredService<IOptions<MarketingSettings>>();
50-
logger.LogError("connectionString " + settings.Value.ConnectionString);
51-
Console.WriteLine("connectionString " + settings.Value.ConnectionString);
52-
}
53-
5438
testServer.Host
55-
.RemoveDbContext<MarketingContext>()
5639
.MigrateDbContext<MarketingContext>((context, services) =>
5740
{
5841
var logger = services.GetService<ILogger<MarketingContextSeed>>();
@@ -63,11 +46,6 @@ public TestServer CreateServer()
6346
.Wait();
6447

6548
});
66-
Console.WriteLine(" Thread to sleep");
67-
68-
Thread.Sleep(5000);
69-
Console.WriteLine(" Thread after");
70-
7149

7250
return testServer;
7351
}

src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
namespace Marketing.FunctionalTests
1010
{
11+
[Collection("Sequential")]
1112
public class UserLocationRoleScenarios
1213
: UserLocationRoleScenariosBase
1314
{

0 commit comments

Comments
 (0)