Skip to content

Commit 636758d

Browse files
Merge branch 'master' into task/#1508_event_processing_failure
2 parents 8c22840 + 0c89b79 commit 636758d

5 files changed

Lines changed: 52 additions & 17 deletions

File tree

TransactionProcessor.DatabaseTests/BaseTest.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ public async Task GetRepository()
5757
this.Repository = new TransactionProcessorReadModelRepository(resolver.Object);
5858
}
5959

60-
public virtual async Task DisposeAsync()
61-
{
60+
public virtual async Task DisposeAsync() {
61+
await this.DockerHelper.StopContainersForScenarioRun(DockerServices.None);
6262
}
6363

6464
//protected abstract Task ClearStandingData();
@@ -94,16 +94,16 @@ internal async Task StartSqlContainer()
9494
await DockerHelper.StartContainersForScenarioRun(this.TestId.ToString(), DockerServices.SqlServer);
9595
}
9696

97-
public void Dispose()
98-
{
99-
EstateManagementContext context = new EstateManagementContext(this.GetLocalConnectionString($"EstateReportingReadModel{this.TestId.ToString()}"));
97+
//public void Dispose()
98+
//{
99+
// EstateManagementContext context = new EstateManagementContext(this.GetLocalConnectionString($"EstateReportingReadModel{this.TestId.ToString()}"));
100100

101-
Console.WriteLine($"About to delete database EstateReportingReadModel{this.TestId.ToString()}");
102-
Boolean result = context.Database.EnsureDeleted();
103-
Console.WriteLine($"Delete result is {result}");
104-
result.ShouldBeTrue();
101+
// Console.WriteLine($"About to delete database EstateReportingReadModel{this.TestId.ToString()}");
102+
// Boolean result = context.Database.EnsureDeleted();
103+
// Console.WriteLine($"Delete result is {result}");
104+
// result.ShouldBeTrue();
105105

106-
}
106+
//}
107107
}
108108

109109

TransactionProcessor.DatabaseTests/ContractEventTests.cs

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
namespace TransactionProcessor.DatabaseTests {
1515
public class MerchantEventTests : BaseTest {
1616
[Fact]
17-
public async Task AddMerchant_MerchantIsAdded() {
17+
public async Task AddMerchant_MerchantIsAdded()
18+
{
1819
Result result = await this.Repository.AddMerchant(TestData.DomainEvents.MerchantCreatedEvent, CancellationToken.None);
1920
result.IsSuccess.ShouldBeTrue();
2021
EstateManagementContext context = this.GetContext();
@@ -31,7 +32,8 @@ public async Task AddMerchant_EventReplayHandled() {
3132
}
3233

3334
[Fact]
34-
public async Task AddMerchantDevice_MerchantContractIsAdded() {
35+
public async Task AddMerchantDevice_MerchantContractIsAdded()
36+
{
3537
Result result = await this.Repository.AddMerchantDevice(TestData.DomainEvents.DeviceAddedToMerchantEvent, CancellationToken.None);
3638
result.IsSuccess.ShouldBeTrue();
3739
EstateManagementContext context = this.GetContext();
@@ -120,6 +122,26 @@ public async Task CreateFloat_EventReplayHandled()
120122
}
121123

122124

125+
public class StatementEventTests : BaseTest {
126+
[Fact]
127+
public async Task CreateStatement_StatementIsAdded()
128+
{
129+
Result result = await this.Repository.CreateStatement(TestData.DomainEvents.StatementCreatedEvent, CancellationToken.None);
130+
result.IsSuccess.ShouldBeTrue();
131+
EstateManagementContext context = this.GetContext();
132+
StatementHeader? statement = await context.StatementHeaders.SingleOrDefaultAsync(c => c.StatementId == TestData.DomainEvents.StatementCreatedEvent.MerchantStatementId);
133+
statement.ShouldNotBeNull();
134+
}
135+
[Fact]
136+
public async Task CreateStatement_EventReplayHandled()
137+
{
138+
Result result = await this.Repository.CreateStatement(TestData.DomainEvents.StatementCreatedEvent, CancellationToken.None);
139+
result.IsSuccess.ShouldBeTrue();
140+
result = await this.Repository.CreateStatement(TestData.DomainEvents.StatementCreatedEvent, CancellationToken.None);
141+
result.IsSuccess.ShouldBeTrue();
142+
}
143+
}
144+
123145
public class ContractEventTests : BaseTest
124146
{
125147
[Fact]
@@ -143,7 +165,8 @@ public async Task AddOperator_EventReplayHandled()
143165
}
144166

145167
[Fact]
146-
public async Task AddContract_ContractIsAdded() {
168+
public async Task AddContract_ContractIsAdded()
169+
{
147170
Result result = await this.Repository.AddContract(TestData.DomainEvents.ContractCreatedEvent, CancellationToken.None);
148171
result.IsSuccess.ShouldBeTrue();
149172
EstateManagementContext context = this.GetContext();
@@ -161,7 +184,8 @@ public async Task AddContract_EventReplayHandled() {
161184
}
162185

163186
[Fact]
164-
public async Task AddContractProduct_ContractProductIsAdded() {
187+
public async Task AddContractProduct_ContractProductIsAdded()
188+
{
165189
Result result = await this.Repository.AddContractProduct(TestData.DomainEvents.FixedValueProductAddedToContractEvent, CancellationToken.None);
166190
result.IsSuccess.ShouldBeTrue();
167191
EstateManagementContext context = this.GetContext();
@@ -195,7 +219,7 @@ public async Task AddContractProduct_EventReplayHandled() {
195219
result = await this.Repository.AddContractProduct(TestData.DomainEvents.VariableValueProductAddedToContractEvent, CancellationToken.None);
196220
result.IsSuccess.ShouldBeTrue();
197221
}
198-
222+
199223
[Fact]
200224
public async Task AddContractProductTransactionFee_ContractIsAdded()
201225
{
@@ -216,7 +240,7 @@ public async Task AddContractProductTransactionFee_EventReplayHandled()
216240
result = await this.Repository.AddContractProductTransactionFee(TestData.DomainEvents.TransactionFeeForProductAddedToContractEvent, CancellationToken.None);
217241
result.IsSuccess.ShouldBeTrue();
218242
}
219-
243+
220244
[Fact]
221245
public async Task AddFileImportLog_FileImportLogIsAdded()
222246
{

TransactionProcessor.DatabaseTests/TransactionProcessor.DatabaseTests.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,10 @@
3535
<Using Include="Xunit" />
3636
</ItemGroup>
3737

38+
<ItemGroup>
39+
<None Update="xunit.runner.json">
40+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
41+
</None>
42+
</ItemGroup>
43+
3844
</Project>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"parallelizeAssembly": true,
3+
"parallelizeTestCollections": true,
4+
"maxParallelThreads": 3
5+
}

TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1762,7 +1762,7 @@ public async Task<Result> CreateStatement(StatementCreatedEvent domainEvent,
17621762

17631763
await context.StatementHeaders.AddAsync(header, cancellationToken);
17641764

1765-
return await context.SaveChangesAsync(cancellationToken);
1765+
return await context.SaveChangesWithDuplicateHandling(cancellationToken);
17661766
}
17671767

17681768
// TODO@ Add this back in

0 commit comments

Comments
 (0)