Skip to content

Commit b9341c4

Browse files
committed
Updated project and test configuration to run migrations automatically
1 parent fa065c6 commit b9341c4

File tree

5 files changed

+22
-15
lines changed

5 files changed

+22
-15
lines changed

Core.Testing/ApiFixture.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public abstract class ApiFixture: IAsyncLifetime
3131

3232
protected ApiFixture()
3333
{
34+
Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development");
3435
Sut = CreateTestContext();
3536
}
3637

Core.Testing/TestWebHostBuilder.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public static IWebHostBuilder Create(Dictionary<string, string> configuration, A
1515
configureServices ??= _ => { };
1616

1717
return new WebHostBuilder()
18-
.UseEnvironment("Tests")
1918
.UseContentRoot(projectDir)
2019
.UseConfiguration(new ConfigurationBuilder()
2120
.SetBasePath(projectDir)

Sample/Warehouse/Warehouse.Api.Tests/WarehouseTestWebHostBuilder.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ public static IWebHostBuilder Configure(IWebHostBuilder webHostBuilder, string s
1818
.ConfigureServices(services =>
1919
{
2020
services.AddRouting()
21-
.AddAuthorization()
22-
.AddCors()
2321
.AddWarehouseServices()
2422
.AddTransient<DbContextOptions<WarehouseDBContext>>(s =>
2523
{
@@ -33,15 +31,13 @@ public static IWebHostBuilder Configure(IWebHostBuilder webHostBuilder, string s
3331
})
3432
.Configure(app =>
3533
{
36-
app.UseHttpsRedirection()
37-
.UseMiddleware(typeof(ExceptionHandlingMiddleware))
34+
app.UseMiddleware(typeof(ExceptionHandlingMiddleware))
3835
.UseRouting()
39-
.UseAuthorization()
40-
.UseEndpoints(endpoints => { endpoints.UseWarehouseEndpoints(); });
36+
.UseEndpoints(endpoints => { endpoints.UseWarehouseEndpoints(); })
37+
.ConfigureWarehouse();
4138

4239
// Kids, do not try this at home!
4340
var database = app.ApplicationServices.GetRequiredService<WarehouseDBContext>().Database;
44-
database.Migrate();
4541
database.ExecuteSqlRaw("TRUNCATE TABLE \"Product\"");
4642
});
4743

Sample/Warehouse/Warehouse.Api/Program.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,17 @@
1212
.ConfigureServices(services =>
1313
{
1414
services.AddRouting()
15-
.AddCors()
16-
.AddAuthorization()
1715
.AddWarehouseServices();
1816
})
1917
.Configure(app =>
2018
{
21-
app.UseHttpsRedirection()
22-
.UseMiddleware(typeof(ExceptionHandlingMiddleware))
19+
app.UseMiddleware(typeof(ExceptionHandlingMiddleware))
2320
.UseRouting()
24-
.UseAuthorization()
2521
.UseEndpoints(endpoints =>
2622
{
2723
endpoints.UseWarehouseEndpoints();
28-
});
24+
})
25+
.ConfigureWarehouse();
2926
});
3027
})
3128
.Build();

Sample/Warehouse/Warehouse/Configuration.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using Microsoft.AspNetCore.Routing;
1+
using System;
2+
using Microsoft.AspNetCore.Builder;
3+
using Microsoft.AspNetCore.Routing;
24
using Microsoft.EntityFrameworkCore;
35
using Microsoft.Extensions.DependencyInjection;
46
using Warehouse.Products;
@@ -16,5 +18,17 @@ public static IServiceCollection AddWarehouseServices(this IServiceCollection se
1618

1719
public static IEndpointRouteBuilder UseWarehouseEndpoints(this IEndpointRouteBuilder endpoints)
1820
=> endpoints.UseProductsEndpoints();
21+
22+
public static IApplicationBuilder ConfigureWarehouse(this IApplicationBuilder app)
23+
{
24+
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
25+
26+
if (environment == "Development")
27+
{
28+
app.ApplicationServices.GetRequiredService<WarehouseDBContext>().Database.Migrate();
29+
}
30+
31+
return app;
32+
}
1933
}
2034
}

0 commit comments

Comments
 (0)