Skip to content

Commit 21a8b4e

Browse files
Merge pull request #559 from TransactionProcessing/task/#558_reqnroll_and_docker_helper_upgrade
Reqnroll upgrade completed
2 parents aa7fe85 + 70aa8c9 commit 21a8b4e

File tree

34 files changed

+812
-1220
lines changed

34 files changed

+812
-1220
lines changed

TransactionProcessor.BusinessLogic/TransactionProcessor.BusinessLogic.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="EstateManagement.Client" Version="2024.3.4-build74" />
9-
<PackageReference Include="EstateManagement.Database" Version="2024.3.4-build74" />
8+
<PackageReference Include="EstateManagement.Client" Version="2024.3.5-build77" />
9+
<PackageReference Include="EstateManagement.Database" Version="2024.3.5-build77" />
1010
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.7" />
11-
<PackageReference Include="MessagingService.Client" Version="2023.11.1" />
12-
<PackageReference Include="SecurityService.Client" Version="2023.12.1" />
13-
<PackageReference Include="Shared.DomainDrivenDesign" Version="2023.12.2" />
14-
<PackageReference Include="Shared.EventStore" Version="2023.12.2" />
11+
<PackageReference Include="MessagingService.Client" Version="2023.11.2-build53" />
12+
<PackageReference Include="SecurityService.Client" Version="2023.12.2-build58" />
13+
<PackageReference Include="Shared.DomainDrivenDesign" Version="2024.3.3" />
14+
<PackageReference Include="Shared.EventStore" Version="2024.3.3" />
1515
<PackageReference Include="MediatR" Version="12.0.1" />
1616
<PackageReference Include="System.IO.Abstractions" Version="19.2.29" />
1717
<PackageReference Include="System.ServiceModel.Duplex" Version="6.0.0" />

TransactionProcessor.Client/TransactionProcessor.Client.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="ClientProxyBase" Version="2023.12.2" />
9+
<PackageReference Include="ClientProxyBase" Version="2024.3.3" />
1010
</ItemGroup>
1111

1212
<ItemGroup>

TransactionProcessor.Float.DomainEvents/TransactionProcessor.Float.DomainEvents.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Shared.DomainDrivenDesign" Version="2023.12.2" />
10+
<PackageReference Include="Shared.DomainDrivenDesign" Version="2024.3.3" />
1111
</ItemGroup>
1212

1313
</Project>

TransactionProcessor.FloatAggregate/TransactionProcessor.FloatAggregate.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Shared.EventStore" Version="2023.12.2" />
10+
<PackageReference Include="Shared.EventStore" Version="2024.3.3" />
1111
</ItemGroup>
1212

1313
<ItemGroup>

TransactionProcessor.IntegrationTesting.Helpers/SpecflowExtensions.cs

Lines changed: 173 additions & 515 deletions
Large diffs are not rendered by default.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace TransactionProcessor.IntegrationTesting.Helpers;
2+
3+
public static class SubscriptionsHelper
4+
{
5+
public static List<(String streamName, String groupName, Int32 maxRetries)> GetSubscriptions()
6+
{
7+
List<(String streamName, String groupName, Int32 maxRetries)> subscriptions = new(){
8+
("$ce-EstateAggregate", "Transaction Processor - Ordered", 2),
9+
("$ce-MerchantAggregate", "Transaction Processor - Ordered", 2),
10+
("$ce-MerchantDepositListAggregate", "Transaction Processor - Ordered", 2),
11+
("$ce-SettlementAggregate", "Transaction Processor", 0),
12+
("$ce-TransactionAggregate", "Transaction Processor", 0),
13+
("$ce-TransactionAggregate", "Transaction Processor - Ordered", 2),
14+
("$ce-VoucherAggregate", "Transaction Processor", 0),
15+
("$ce-VoucherAggregate", "Transaction Processor - Ordered", 2)
16+
};
17+
18+
return subscriptions;
19+
}
20+
}

TransactionProcessor.IntegrationTesting.Helpers/TransactionProcessor.IntegrationTesting.Helpers.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="EstateManagement.Client" Version="2024.3.4-build74" />
11-
<PackageReference Include="EstateManagement.IntegrationTesting.Helpers" Version="2024.3.4-build74" />
10+
<PackageReference Include="EstateManagement.Client" Version="2024.3.5-build77" />
11+
<PackageReference Include="EstateManagement.IntegrationTesting.Helpers" Version="2024.3.5-build77" />
1212
<PackageReference Include="Reqnroll" Version="1.0.1" />
1313
</ItemGroup>
1414

TransactionProcessor.IntegrationTesting.Helpers/TransactionProcessorSteps.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ await this.TransactionProcessorClient.ResendEmailReceipt(accessToken,
104104
}
105105
}
106106

107-
public async Task ThenTheFollowingEntriesAppearInTheMerchantsBalanceHistoryForEstateAndMerchant(String accessToken, DateTime startDate, DateTime endDate, List<SpecflowExtensions.BalanceEntry> balanceEntries)
107+
public async Task ThenTheFollowingEntriesAppearInTheMerchantsBalanceHistoryForEstateAndMerchant(String accessToken, DateTime startDate, DateTime endDate, List<ReqnrollExtensions.BalanceEntry> balanceEntries)
108108
{
109109

110110
var merchants = balanceEntries.GroupBy(b => new { b.EstateId, b.MerchantId }).Select(b => new {
@@ -117,7 +117,7 @@ public async Task ThenTheFollowingEntriesAppearInTheMerchantsBalanceHistoryForEs
117117
foreach (var m in merchants)
118118
{
119119
List<MerchantBalanceChangedEntryResponse> balanceHistory = null;
120-
List<SpecflowExtensions.BalanceEntry> merchantEntries = balanceEntries.Where(b => b.EstateId == m.EstateId && b.MerchantId == m.MerchantId).ToList();
120+
List<ReqnrollExtensions.BalanceEntry> merchantEntries = balanceEntries.Where(b => b.EstateId == m.EstateId && b.MerchantId == m.MerchantId).ToList();
121121

122122
await Retry.For(async () => {
123123
balanceHistory =
@@ -131,7 +131,7 @@ await this.TransactionProcessorClient.GetMerchantBalanceHistory(accessToken,
131131
balanceHistory.ShouldNotBeNull();
132132
balanceHistory.ShouldNotBeEmpty();
133133
balanceHistory.Count.ShouldBe(m.NumberEntries);
134-
foreach (SpecflowExtensions.BalanceEntry merchantEntry in merchantEntries)
134+
foreach (ReqnrollExtensions.BalanceEntry merchantEntry in merchantEntries)
135135
{
136136

137137

@@ -145,7 +145,7 @@ await this.TransactionProcessorClient.GetMerchantBalanceHistory(accessToken,
145145
}
146146

147147
},
148-
TimeSpan.FromMinutes(4),
148+
TimeSpan.FromMinutes(10),
149149
TimeSpan.FromSeconds(30));
150150
}
151151
}
@@ -161,16 +161,16 @@ public async Task SendRequestToTestHost<T>(List<T> objects, String url){
161161
}
162162
}
163163

164-
public async Task GivenTheFollowingBillsAreAvailableAtThePataPawaPostPaidHost(List<SpecflowExtensions.PataPawaBill> bills){
165-
await this.SendRequestToTestHost<SpecflowExtensions.PataPawaBill>(bills, "/api/developer/patapawapostpay/createbill");
164+
public async Task GivenTheFollowingBillsAreAvailableAtThePataPawaPostPaidHost(List<ReqnrollExtensions.PataPawaBill> bills){
165+
await this.SendRequestToTestHost<ReqnrollExtensions.PataPawaBill>(bills, "/api/developer/patapawapostpay/createbill");
166166
}
167167

168-
public async Task GivenTheFollowingMetersAreAvailableAtThePataPawaPrePaidHost(List<SpecflowExtensions.PataPawaMeter> meters){
169-
await this.SendRequestToTestHost<SpecflowExtensions.PataPawaMeter>(meters, "/api/developer/patapawaprepay/createmeter");
168+
public async Task GivenTheFollowingMetersAreAvailableAtThePataPawaPrePaidHost(List<ReqnrollExtensions.PataPawaMeter> meters){
169+
await this.SendRequestToTestHost<ReqnrollExtensions.PataPawaMeter>(meters, "/api/developer/patapawaprepay/createmeter");
170170
}
171171

172-
public async Task GivenTheFollowingUsersAreAvailableAtThePataPawaPrePaidHost(List<SpecflowExtensions.PataPawaUser> users){
173-
await this.SendRequestToTestHost<SpecflowExtensions.PataPawaUser>(users, "/api/developer/patapawaprepay/createuser");
172+
public async Task GivenTheFollowingUsersAreAvailableAtThePataPawaPrePaidHost(List<ReqnrollExtensions.PataPawaUser> users){
173+
await this.SendRequestToTestHost<ReqnrollExtensions.PataPawaUser>(users, "/api/developer/patapawaprepay/createuser");
174174
}
175175

176176
public async Task<GetVoucherResponse> GetVoucherByTransactionNumber(String accessToken, EstateDetails estate, SaleTransactionResponse transactionResponse)
@@ -203,7 +203,7 @@ await Retry.For(async () =>
203203
});
204204
}
205205

206-
public async Task WhenIProcessTheSettlementForOnEstateThenFeesAreMarkedAsSettledAndTheSettlementIsCompleted(String accessToken, SpecflowExtensions.ProcessSettlementRequest request, Int32 expectedNumberFeesSettled)
206+
public async Task WhenIProcessTheSettlementForOnEstateThenFeesAreMarkedAsSettledAndTheSettlementIsCompleted(String accessToken, ReqnrollExtensions.ProcessSettlementRequest request, Int32 expectedNumberFeesSettled)
207207
{
208208
await this.TransactionProcessorClient.ProcessSettlement(accessToken,
209209
request.SettlementDate,

TransactionProcessor.IntegrationTests/Common/DockerHelper.cs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,20 @@ public override ContainerBuilder SetupTransactionProcessorContainer(){
7272
return base.SetupTransactionProcessorContainer();
7373
}
7474

75+
public override async Task CreateSubscriptions(){
76+
List<(String streamName, String groupName, Int32 maxRetries)> subscriptions = new();
77+
subscriptions.AddRange(MessagingService.IntegrationTesting.Helpers.SubscriptionsHelper.GetSubscriptions());
78+
subscriptions.AddRange(EstateManagement.IntegrationTesting.Helpers.SubscriptionsHelper.GetSubscriptions());
79+
subscriptions.AddRange(TransactionProcessor.IntegrationTesting.Helpers.SubscriptionsHelper.GetSubscriptions());
80+
81+
foreach ((String streamName, String groupName, Int32 maxRetries) subscription in subscriptions)
82+
{
83+
var x = subscription;
84+
x.maxRetries = 2;
85+
await this.CreatePersistentSubscription(x);
86+
}
87+
}
88+
7589
/// <summary>
7690
/// Starts the containers for scenario run.
7791
/// </summary>
@@ -108,11 +122,11 @@ public override async Task StartContainersForScenarioRun(String scenarioName, Do
108122
/// <summary>
109123
/// Stops the containers for scenario run.
110124
/// </summary>
111-
public override async Task StopContainersForScenarioRun()
125+
public override async Task StopContainersForScenarioRun(DockerServices dockerServices)
112126
{
113127
await this.RemoveEstateReadModel().ConfigureAwait(false);
114128

115-
await base.StopContainersForScenarioRun();
129+
await base.StopContainersForScenarioRun(dockerServices);
116130
}
117131

118132
private async Task RemoveEstateReadModel()
@@ -133,19 +147,6 @@ await Retry.For(async () =>
133147
}
134148
}
135149

136-
public override async Task CreateGenericSubscriptions(){
137-
List<(String streamName, String groupName, Int32 maxRetries)> subscriptions = new List<(String streamName, String groupName, Int32 maxRetries)>
138-
{
139-
($"$ce-VoucherAggregate", "Transaction Processor - Ordered", 2),
140-
($"$ce-MerchantBalanceArchive", "Transaction Processor - Ordered", 2),
141-
($"$et-EstateCreatedEvent", "Transaction Processor - Ordered", 2)
142-
};
143-
foreach ((String streamName, String groupName, Int32 maxRetries) subscription in subscriptions)
144-
{
145-
await this.CreatePersistentSubscription(subscription);
146-
}
147-
}
148-
149150
#endregion
150151
}
151152
}

TransactionProcessor.IntegrationTests/Common/GenericSteps.cs

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ namespace TransactionProcessor.IntegrationTests.Common
1313
using global::Shared.IntegrationTesting;
1414
using global::Shared.Logger;
1515
using NLog;
16-
using TechTalk.SpecFlow;
17-
using TechTalk.SpecFlow.Plugins;
16+
using Reqnroll;
1817

1918
[Binding]
2019
[Scope(Tag = "base")]
@@ -34,14 +33,52 @@ public GenericSteps(ScenarioContext scenarioContext,
3433
[BeforeScenario]
3534
public async Task StartSystem()
3635
{
36+
//// Initialise a logger
37+
//String scenarioName = this.ScenarioContext.ScenarioInfo.Title.Replace(" ", "");
38+
//NlogLogger logger = new NlogLogger();
39+
//logger.Initialise(LogManager.GetLogger(scenarioName), scenarioName);
40+
//LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);
41+
42+
//this.TestingContext.DockerHelper = new DockerHelper();
43+
//this.TestingContext.DockerHelper.Logger = logger;
44+
//this.TestingContext.DockerHelper.SqlServerContainer = Setup.DatabaseServerContainer;
45+
//this.TestingContext.DockerHelper.SqlServerNetwork = Setup.DatabaseServerNetwork;
46+
//this.TestingContext.DockerHelper.DockerCredentials = Setup.DockerCredentials;
47+
//this.TestingContext.DockerHelper.SqlCredentials = Setup.SqlCredentials;
48+
//this.TestingContext.DockerHelper.SqlServerContainerName = "sharedsqlserver";
49+
50+
//this.TestingContext.DockerHelper.SetImageDetails(ContainerType.TransactionProcessor, ("transactionprocessor", false));
51+
52+
//this.TestingContext.Logger = logger;
53+
//this.TestingContext.Logger.LogInformation("About to Start Containers for Scenario Run");
54+
55+
//DockerServices dockerServices = DockerServices.CallbackHandler | DockerServices.EstateManagement | DockerServices.EventStore |
56+
// DockerServices.FileProcessor | DockerServices.MessagingService | DockerServices.SecurityService |
57+
// DockerServices.SqlServer | DockerServices.TestHost | DockerServices.TransactionProcessor |
58+
// DockerServices.TransactionProcessorAcl;
59+
60+
//await this.TestingContext.DockerHelper.StartContainersForScenarioRun(scenarioName, dockerServices).ConfigureAwait(false);
61+
//this.TestingContext.Logger.LogInformation("Containers for Scenario Run Started");
62+
3763
// Initialise a logger
3864
String scenarioName = this.ScenarioContext.ScenarioInfo.Title.Replace(" ", "");
3965
NlogLogger logger = new NlogLogger();
4066
logger.Initialise(LogManager.GetLogger(scenarioName), scenarioName);
4167
LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);
4268

69+
DockerServices dockerServices = DockerServices.CallbackHandler | DockerServices.EstateManagement | DockerServices.EventStore |
70+
DockerServices.FileProcessor | DockerServices.MessagingService | DockerServices.SecurityService |
71+
DockerServices.SqlServer | DockerServices.TestHost | DockerServices.TransactionProcessor |
72+
DockerServices.TransactionProcessorAcl;
73+
4374
this.TestingContext.DockerHelper = new DockerHelper();
4475
this.TestingContext.DockerHelper.Logger = logger;
76+
this.TestingContext.Logger = logger;
77+
this.TestingContext.DockerHelper.RequiredDockerServices = dockerServices;
78+
this.TestingContext.Logger.LogInformation("About to Start Global Setup");
79+
80+
await Setup.GlobalSetup(this.TestingContext.DockerHelper);
81+
4582
this.TestingContext.DockerHelper.SqlServerContainer = Setup.DatabaseServerContainer;
4683
this.TestingContext.DockerHelper.SqlServerNetwork = Setup.DatabaseServerNetwork;
4784
this.TestingContext.DockerHelper.DockerCredentials = Setup.DockerCredentials;
@@ -52,21 +89,17 @@ public async Task StartSystem()
5289

5390
this.TestingContext.Logger = logger;
5491
this.TestingContext.Logger.LogInformation("About to Start Containers for Scenario Run");
55-
56-
DockerServices dockerServices = DockerServices.CallbackHandler | DockerServices.EstateManagement | DockerServices.EventStore |
57-
DockerServices.FileProcessor | DockerServices.MessagingService | DockerServices.SecurityService |
58-
DockerServices.SqlServer | DockerServices.TestHost | DockerServices.TransactionProcessor |
59-
DockerServices.TransactionProcessorAcl;
60-
6192
await this.TestingContext.DockerHelper.StartContainersForScenarioRun(scenarioName, dockerServices).ConfigureAwait(false);
6293
this.TestingContext.Logger.LogInformation("Containers for Scenario Run Started");
6394
}
6495

6596
[AfterScenario]
66-
public async Task StopSystem()
67-
{
97+
public async Task StopSystem(){
98+
99+
DockerServices sharedDockerServices = DockerServices.SqlServer;
100+
68101
this.TestingContext.Logger.LogInformation("About to Stop Containers for Scenario Run");
69-
await this.TestingContext.DockerHelper.StopContainersForScenarioRun().ConfigureAwait(false);
102+
await this.TestingContext.DockerHelper.StopContainersForScenarioRun(sharedDockerServices).ConfigureAwait(false);
70103
this.TestingContext.Logger.LogInformation("Containers for Scenario Run Stopped");
71104
}
72105
}

0 commit comments

Comments
 (0)