Skip to content

Commit bf400ea

Browse files
Merge pull request #901 from TransactionProcessing/bug/#891_estate_user_duplicate_handling
estate security user duplicate handling added
2 parents 1ae557a + 4a422ba commit bf400ea

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

TransactionProcessor.DatabaseTests/ContractEventTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,5 +171,25 @@ public async Task AddEstate_EventReplayHandled()
171171
result = await this.Repository.AddEstate(TestData.DomainEvents.EstateCreatedEvent, CancellationToken.None);
172172
result.IsSuccess.ShouldBeTrue();
173173
}
174+
175+
[Fact]
176+
public async Task AddEstateSecurityUser_EstateIsAdded()
177+
{
178+
Result result = await this.Repository.AddEstateSecurityUser(TestData.DomainEvents.EstateSecurityUserAddedEvent, CancellationToken.None);
179+
result.IsSuccess.ShouldBeTrue();
180+
EstateManagementContext context = this.GetContext();
181+
var estateSecurityUser = await context.EstateSecurityUsers.SingleOrDefaultAsync(f => f.EstateId == TestData.DomainEvents.EstateSecurityUserAddedEvent.EstateId && f.SecurityUserId == TestData.DomainEvents.EstateSecurityUserAddedEvent.SecurityUserId);
182+
estateSecurityUser.ShouldNotBeNull();
183+
}
184+
185+
[Fact]
186+
public async Task AddEstateSecurityUser_EventReplayHandled()
187+
{
188+
Result result = await this.Repository.AddEstateSecurityUser(TestData.DomainEvents.EstateSecurityUserAddedEvent, CancellationToken.None);
189+
result.IsSuccess.ShouldBeTrue();
190+
191+
result = await this.Repository.AddEstateSecurityUser(TestData.DomainEvents.EstateSecurityUserAddedEvent, CancellationToken.None);
192+
result.IsSuccess.ShouldBeTrue();
193+
}
174194
}
175195
}

TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ public async Task<Result> AddEstateSecurityUser(EstateDomainEvents.SecurityUserA
993993

994994
await context.EstateSecurityUsers.AddAsync(estateSecurityUser, cancellationToken);
995995

996-
return await context.SaveChangesAsync(cancellationToken);
996+
return await context.SaveChangesWithDuplicateHandling(cancellationToken);
997997
}
998998

999999
public async Task<Result> AddProductDetailsToTransaction(TransactionDomainEvents.ProductDetailsAddedToTransactionEvent domainEvent,

0 commit comments

Comments
 (0)