diff --git a/TransactionProcessor.DatabaseTests/ContractEventTests.cs b/TransactionProcessor.DatabaseTests/ContractEventTests.cs index 713bc97..d8c1618 100644 --- a/TransactionProcessor.DatabaseTests/ContractEventTests.cs +++ b/TransactionProcessor.DatabaseTests/ContractEventTests.cs @@ -13,8 +13,29 @@ namespace TransactionProcessor.DatabaseTests { + public class ContractEventTests : BaseTest { + [Fact] + public async Task AddOperator_OperatorIsAdded() + { + Result result = await this.Repository.AddOperator(TestData.DomainEvents.OperatorCreatedEvent, CancellationToken.None); + result.IsSuccess.ShouldBeTrue(); + EstateManagementContext context = this.GetContext(); + Operator? @operator = await context.Operators.SingleOrDefaultAsync(c => c.OperatorId == TestData.DomainEvents.OperatorCreatedEvent.OperatorId); + @operator.ShouldNotBeNull(); + } + + [Fact] + public async Task AddOperator_OperatorIsAdded_EventReplayHandled() + { + Result result = await this.Repository.AddOperator(TestData.DomainEvents.OperatorCreatedEvent, CancellationToken.None); + result.IsSuccess.ShouldBeTrue(); + + result = await this.Repository.AddOperator(TestData.DomainEvents.OperatorCreatedEvent, CancellationToken.None); + result.IsSuccess.ShouldBeTrue(); + } + [Fact] public async Task AddContract_ContractIsAdded() { Result result = await this.Repository.AddContract(TestData.DomainEvents.ContractCreatedEvent, CancellationToken.None); diff --git a/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs b/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs index fed7c38..ce18cbf 100644 --- a/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs +++ b/TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs @@ -1642,7 +1642,7 @@ public async Task AddOperator(OperatorDomainEvents.OperatorCreatedEvent await context.Operators.AddAsync(@operator, cancellationToken); - return await context.SaveChangesAsync(cancellationToken); + return await context.SaveChangesWithDuplicateHandling(cancellationToken); } public async Task AddContract(ContractDomainEvents.ContractCreatedEvent domainEvent,