Skip to content

Commit 5b83868

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

File tree

10 files changed

+24
-29
lines changed

10 files changed

+24
-29
lines changed

Core.Testing/TestWebHostBuilder.cs

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

1717
return new WebHostBuilder()
18-
.UseEnvironment("Tests")
18+
.UseEnvironment("Development")
1919
.UseContentRoot(projectDir)
2020
.UseConfiguration(new ConfigurationBuilder()
2121
.SetBasePath(projectDir)

Sample/MeetingsManagement/MeetingsManagement.IntegrationTests/Meetings/CreateMeetingTests.cs

-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public CreateMeetingTests(CreateMeetingFixture fixture)
4545
}
4646

4747
[Fact]
48-
[Trait("Category", "Exercise")]
4948
public async Task CreateCommand_ShouldReturn_CreatedStatus_With_MeetingId()
5049
{
5150
var commandResponse = fixture.CommandResponse;
@@ -58,7 +57,6 @@ public async Task CreateCommand_ShouldReturn_CreatedStatus_With_MeetingId()
5857
}
5958

6059
[Fact]
61-
[Trait("Category", "Exercise")]
6260
public void CreateCommand_ShouldPublish_MeetingCreateEvent()
6361
{
6462
// assert MeetingCreated event was produced to external bus
@@ -70,7 +68,6 @@ public void CreateCommand_ShouldPublish_MeetingCreateEvent()
7068
}
7169

7270
[Fact]
73-
[Trait("Category", "Exercise")]
7471
public async Task CreateCommand_ShouldUpdateReadModel()
7572
{
7673
// prepare query

Sample/MeetingsManagement/MeetingsManagement.IntegrationTests/Meetings/ScheduleMeetingTests.cs

-3
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ public ScheduleMeetingTests(ScheduleMeetingFixture fixture)
5353
}
5454

5555
[Fact]
56-
[Trait("Category", "Exercise")]
5756
public async Task CreateMeeting_ShouldReturn_CreatedStatus_With_MeetingId()
5857
{
5958
var commandResponse = fixture.CreateMeetingCommandResponse.EnsureSuccessStatusCode();
@@ -64,7 +63,6 @@ public async Task CreateMeeting_ShouldReturn_CreatedStatus_With_MeetingId()
6463
}
6564

6665
[Fact]
67-
[Trait("Category", "Exercise")]
6866
public async Task ScheduleMeeting_ShouldSucceed()
6967
{
7068
var commandResponse = fixture.ScheduleMeetingCommandResponse.EnsureSuccessStatusCode();
@@ -75,7 +73,6 @@ public async Task ScheduleMeeting_ShouldSucceed()
7573
}
7674

7775
[Fact]
78-
[Trait("Category", "Exercise")]
7976
public async Task ScheduleMeeting_ShouldUpdateReadModel()
8077
{
8178
//send query

Sample/Warehouse/Warehouse.Api.Tests/Products/GettingProductDetails/GetProductDetailsTests.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Net;
43
using System.Threading.Tasks;
54
using Core.Testing;
65
using FluentAssertions;
76
using Microsoft.AspNetCore.Hosting;
87
using Warehouse.Products.GettingProductDetails;
9-
using Warehouse.Products.GettingProducts;
108
using Warehouse.Products.RegisteringProduct;
119
using Xunit;
1210

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

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using Castle.Core.Configuration;
2-
using Core.WebApi.Middlewares.ExceptionHandling;
1+
using Core.WebApi.Middlewares.ExceptionHandling;
32
using Microsoft.AspNetCore.Builder;
43
using Microsoft.AspNetCore.Hosting;
54
using Microsoft.EntityFrameworkCore;
@@ -18,8 +17,6 @@ public static IWebHostBuilder Configure(IWebHostBuilder webHostBuilder, string s
1817
.ConfigureServices(services =>
1918
{
2019
services.AddRouting()
21-
.AddAuthorization()
22-
.AddCors()
2320
.AddWarehouseServices()
2421
.AddTransient<DbContextOptions<WarehouseDBContext>>(s =>
2522
{
@@ -33,15 +30,13 @@ public static IWebHostBuilder Configure(IWebHostBuilder webHostBuilder, string s
3330
})
3431
.Configure(app =>
3532
{
36-
app.UseHttpsRedirection()
37-
.UseMiddleware(typeof(ExceptionHandlingMiddleware))
33+
app.UseMiddleware(typeof(ExceptionHandlingMiddleware))
3834
.UseRouting()
39-
.UseAuthorization()
40-
.UseEndpoints(endpoints => { endpoints.UseWarehouseEndpoints(); });
35+
.UseEndpoints(endpoints => { endpoints.UseWarehouseEndpoints(); })
36+
.ConfigureWarehouse();
4137

4238
// Kids, do not try this at home!
4339
var database = app.ApplicationServices.GetRequiredService<WarehouseDBContext>().Database;
44-
database.Migrate();
4540
database.ExecuteSqlRaw("TRUNCATE TABLE \"Product\"");
4641
});
4742

Sample/Warehouse/Warehouse.Api/Program.cs

+3-6
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

+15-1
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
}

Sample/Warehouse/Warehouse/Core/Extensions/HttpExtensions.cs

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.ComponentModel;
3-
using System.Diagnostics.CodeAnalysis;
43
using System.Net;
54
using System.Threading.Tasks;
65
using Microsoft.AspNetCore.Http;

Sample/Warehouse/Warehouse/Products/GettingProducts/Route.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
1+
using System.Collections.Generic;
32
using Microsoft.AspNetCore.Builder;
43
using Microsoft.AspNetCore.Routing;
54
using Warehouse.Core.Extensions;

Sample/Warehouse/Warehouse/Products/Product.cs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using System.Text.Json.Serialization;
32
using Warehouse.Products.Primitives;
43

54
namespace Warehouse.Products

0 commit comments

Comments
 (0)