Skip to content

Commit 611f160

Browse files
committed
fix: ensure db deleted before creating new db context
1 parent be3b27f commit 611f160

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

test/Cnblogs.Architecture.IntegrationTests/CustomModelBinderTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public async Task PagingParamsModelBinder_NoPageIndexOrPageSize_NullAsync(string
4141

4242
[Theory]
4343
[InlineData("hello")]
44-
[InlineData("-1")]
4544
public async Task PagingParamsModelBinder_PageIndexInvalid_FailAsync(string pageIndex)
4645
{
4746
// Arrange

test/Cnblogs.Architecture.UnitTests/Infrastructure/EntityFramework/BaseRepositoryTests.cs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ public async Task GetEntityAsync_Include_GetEntityAsync()
2222
new EntityGenerator<FakePost>(new FakePost())
2323
.Setup(x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
2424
.GenerateSingle();
25-
var db = new FakeDbContext(
26-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
25+
var db = GetFakeDbContext();
2726
db.Add(entity);
2827
await db.SaveChangesAsync();
2928
var repository = new TestRepository(Substitute.For<IMediator>(), db);
@@ -36,6 +35,15 @@ public async Task GetEntityAsync_Include_GetEntityAsync()
3635
Assert.Equivalent(entity.Posts, got.Posts);
3736
}
3837

38+
private static FakeDbContext GetFakeDbContext()
39+
{
40+
var options = new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options;
41+
var context = new FakeDbContext(options);
42+
context.Database.EnsureDeleted();
43+
context.Database.EnsureCreated();
44+
return context;
45+
}
46+
3947
[Fact]
4048
public async Task GetEntityAsync_StringBasedInclude_NotNullAsync()
4149
{
@@ -48,8 +56,7 @@ public async Task GetEntityAsync_StringBasedInclude_NotNullAsync()
4856
new EntityGenerator<FakePost>(new FakePost())
4957
.Setup(x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
5058
.GenerateSingle();
51-
var db = new FakeDbContext(
52-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
59+
var db = GetFakeDbContext();
5360
db.Add(entity);
5461
await db.SaveChangesAsync();
5562
var repository = new TestRepository(Substitute.For<IMediator>(), db);
@@ -75,8 +82,7 @@ public async Task GetEntityAsync_ThenInclude_NotNullAsync()
7582
.HasManyForEachEntity(x => x.Tags, new EntityGenerator<FakeTag>(new FakeTag()))
7683
.Setup(x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
7784
.GenerateSingle();
78-
var db = new FakeDbContext(
79-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
85+
var db = GetFakeDbContext();
8086
db.Add(entity);
8187
await db.SaveChangesAsync();
8288
var repository = new TestRepository(Substitute.For<IMediator>(), db);
@@ -101,8 +107,7 @@ public async Task SaveEntitiesAsync_CallBeforeUpdateForRelatedEntity_UpdateDateU
101107
new EntityGenerator<FakePost>(new FakePost())
102108
.Setup(x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
103109
.GenerateSingle();
104-
var db = new FakeDbContext(
105-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
110+
var db = GetFakeDbContext();
106111
db.Add(entity);
107112
await db.SaveChangesAsync();
108113
var repository = new TestRepository(Substitute.For<IMediator>(), db);
@@ -129,8 +134,7 @@ public async Task SaveEntitiesAsync_DispatchEntityDomainEvents_DispatchAllAsync(
129134
new EntityGenerator<FakePost>(new FakePost()).Setup(
130135
x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
131136
.GenerateSingle();
132-
var db = new FakeDbContext(
133-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
137+
var db = GetFakeDbContext();
134138
db.Add(entity);
135139
await db.SaveChangesAsync();
136140
var mediator = Substitute.For<IMediator>();
@@ -163,8 +167,7 @@ public async Task SaveEntitiesAsync_DispatchRelatedEntityDomainEvents_DispatchAl
163167
new EntityGenerator<FakePost>(new FakePost()).Setup(
164168
x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
165169
.GenerateSingle();
166-
var db = new FakeDbContext(
167-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
170+
var db = GetFakeDbContext();
168171
db.Add(entity);
169172
await db.SaveChangesAsync();
170173
var mediator = Substitute.For<IMediator>();
@@ -198,8 +201,7 @@ public async Task SaveEntitiesAsync_DispatchEntityDomainEventsWithGeneratedId_Di
198201
new EntityGenerator<FakePost>(new FakePost()).Setup(
199202
x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
200203
.GenerateSingle();
201-
var db = new FakeDbContext(
202-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
204+
var db = GetFakeDbContext();
203205
var mediator = Substitute.For<IMediator>();
204206
var repository = new TestRepository(mediator, db);
205207

@@ -229,8 +231,7 @@ public async Task SaveEntitiesAsync_DispatchEntityDomainEventsWithMultipleExcept
229231
new EntityGenerator<FakePost>(new FakePost()).Setup(
230232
x => x.DateUpdated = DateTimeOffset.Now.AddDays(-1)))
231233
.GenerateSingle();
232-
var db = new FakeDbContext(
233-
new DbContextOptionsBuilder<FakeDbContext>().UseInMemoryDatabase("inmemory").Options);
234+
var db = GetFakeDbContext();
234235
var mediator = Substitute.For<IMediator>();
235236
mediator.Publish(Arg.Any<IDomainEvent>(), Arg.Any<CancellationToken>())
236237
.ThrowsAsync<ArgumentException>();

0 commit comments

Comments
 (0)