Skip to content

Commit d156e61

Browse files
Merge pull request #157 from TransactionProcessing/task/#156_reqnroll_and_docker_helper_upgrade
Reqnroll Upgrade completed
2 parents dda0343 + 0db1ae6 commit d156e61

File tree

22 files changed

+218
-257
lines changed

22 files changed

+218
-257
lines changed

MessagingService.Client/MessagingService.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.11.3" />
9+
<PackageReference Include="ClientProxyBase" Version="2024.3.3" />
1010
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
1111
</ItemGroup>
1212

MessagingService.EmailAggregate.Tests/MessagingService.EmailAggregate.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<ItemGroup>
1010
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.2" />
11-
<PackageReference Include="Shared.EventStore" Version="2023.11.3" />
11+
<PackageReference Include="Shared.EventStore" Version="2024.3.3" />
1212
<PackageReference Include="Shouldly" Version="4.2.1" />
1313
<PackageReference Include="xunit" Version="2.4.2" />
1414
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">

MessagingService.EmailMessage.DomainEvents/MessagingService.EmailMessage.DomainEvents.csproj

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

77
<ItemGroup>
8-
<PackageReference Include="Shared" Version="2023.11.3" />
9-
<PackageReference Include="Shared.DomainDrivenDesign" Version="2023.11.3" />
8+
<PackageReference Include="Shared" Version="2024.3.3" />
9+
<PackageReference Include="Shared.DomainDrivenDesign" Version="2024.3.3" />
1010
</ItemGroup>
1111

1212
</Project>

MessagingService.EmailMessageAggregate/MessagingService.EmailMessageAggregate.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
<ItemGroup>
88
<PackageReference Include="Grpc.Net.Client" Version="2.53.0" />
9-
<PackageReference Include="Shared" Version="2023.11.3" />
10-
<PackageReference Include="Shared.EventStore" Version="2023.11.3" />
9+
<PackageReference Include="Shared" Version="2024.3.3" />
10+
<PackageReference Include="Shared.EventStore" Version="2024.3.3" />
1111
</ItemGroup>
1212

1313
<ItemGroup>

MessagingService.IntegrationTesting.Helpers/MessagingService.IntegrationTesting.Helpers.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>net7.0</TargetFramework>
@@ -7,12 +7,12 @@
77
</PropertyGroup>
88

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

1313
<ItemGroup>
14-
<ProjectReference Include="..\MessagingService.Client\MessagingService.Client.csproj" PrivateAssets="All"/>
15-
<ProjectReference Include="..\MessagingService.DataTransferObjects\MessagingService.DataTransferObjects.csproj" PrivateAssets="All"/>
14+
<ProjectReference Include="..\MessagingService.Client\MessagingService.Client.csproj" PrivateAssets="All" />
15+
<ProjectReference Include="..\MessagingService.DataTransferObjects\MessagingService.DataTransferObjects.csproj" PrivateAssets="All" />
1616
</ItemGroup>
1717

1818
<Target Name="IncludeP2PAssets">

MessagingService.IntegrationTesting.Helpers/SpecflowExtensions.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
namespace MessagingService.IntegrationTesting.Helpers;
22

33
using MessagingService.DataTransferObjects;
4+
using Reqnroll;
45
using Shared.IntegrationTesting;
5-
using TechTalk.SpecFlow;
66

7-
public static class SpecflowExtensions{
8-
public static List<SendEmailRequest> ToSendEmailRequests(this TableRows tableRows){
7+
public static class ReqnrollExtensions{
8+
public static List<SendEmailRequest> ToSendEmailRequests(this DataTableRows tableRows){
99
List<SendEmailRequest> requests = new List<SendEmailRequest>();
10-
foreach (TableRow tableRow in tableRows){
11-
String fromAddress = SpecflowTableHelper.GetStringRowValue(tableRow, "FromAddress");
12-
String toAddresses = SpecflowTableHelper.GetStringRowValue(tableRow, "ToAddresses");
13-
String subject = SpecflowTableHelper.GetStringRowValue(tableRow, "Subject");
14-
String body = SpecflowTableHelper.GetStringRowValue(tableRow, "Body");
15-
Boolean isHtml = SpecflowTableHelper.GetBooleanValue(tableRow, "IsHtml");
10+
foreach (DataTableRow tableRow in tableRows){
11+
String fromAddress = ReqnrollTableHelper.GetStringRowValue(tableRow, "FromAddress");
12+
String toAddresses = ReqnrollTableHelper.GetStringRowValue(tableRow, "ToAddresses");
13+
String subject = ReqnrollTableHelper.GetStringRowValue(tableRow, "Subject");
14+
String body = ReqnrollTableHelper.GetStringRowValue(tableRow, "Body");
15+
Boolean isHtml = ReqnrollTableHelper.GetBooleanValue(tableRow, "IsHtml");
1616

1717
SendEmailRequest request = new SendEmailRequest
1818
{
@@ -29,12 +29,12 @@ public static List<SendEmailRequest> ToSendEmailRequests(this TableRows tableRow
2929
return requests;
3030
}
3131

32-
public static List<ResendEmailRequest> ToResendEmailRequests(this TableRows tableRows, Dictionary<String, SendEmailResponse> sendResponses)
32+
public static List<ResendEmailRequest> ToResendEmailRequests(this DataTableRows tableRows, Dictionary<String, SendEmailResponse> sendResponses)
3333
{
3434
List<ResendEmailRequest> requests = new List<ResendEmailRequest>();
3535

36-
foreach (TableRow tableRow in tableRows){
37-
String toAddresses = SpecflowTableHelper.GetStringRowValue(tableRow, "ToAddresses");
36+
foreach (DataTableRow tableRow in tableRows){
37+
String toAddresses = ReqnrollTableHelper.GetStringRowValue(tableRow, "ToAddresses");
3838
SendEmailResponse sendEmailResponse = sendResponses[toAddresses];
3939

4040
ResendEmailRequest request = new ResendEmailRequest()
@@ -47,13 +47,13 @@ public static List<ResendEmailRequest> ToResendEmailRequests(this TableRows tabl
4747
return requests;
4848
}
4949

50-
public static List<SendSMSRequest> ToSendSMSRequests(this TableRows tableRows){
50+
public static List<SendSMSRequest> ToSendSMSRequests(this DataTableRows tableRows){
5151
List<SendSMSRequest> requests = new List<SendSMSRequest>();
5252

53-
foreach (TableRow tableRow in tableRows){
54-
String sender = SpecflowTableHelper.GetStringRowValue(tableRow, "Sender");
55-
String destination = SpecflowTableHelper.GetStringRowValue(tableRow, "Destination");
56-
String message = SpecflowTableHelper.GetStringRowValue(tableRow, "Message");
53+
foreach (DataTableRow tableRow in tableRows){
54+
String sender = ReqnrollTableHelper.GetStringRowValue(tableRow, "Sender");
55+
String destination = ReqnrollTableHelper.GetStringRowValue(tableRow, "Destination");
56+
String message = ReqnrollTableHelper.GetStringRowValue(tableRow, "Message");
5757

5858
SendSMSRequest request = new SendSMSRequest
5959
{
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace MessagingService.IntegrationTesting.Helpers
8+
{
9+
public static class SubscriptionsHelper
10+
{
11+
public static List<(String streamName, String groupName, Int32 maxRetries)> GetSubscriptions(){
12+
List<(String streamName, String groupName, Int32 maxRetries)> subscriptions = new(){
13+
("$ce-EmailAggregate", "Messaging Service", 0),
14+
("$ce-SMSAggregate", "Messaging Service", 0)
15+
};
16+
return subscriptions;
17+
}
18+
}
19+
}

MessagingService.IntegrationTests/Common/DockerHelper.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Ductus.FluentDocker.Services.Extensions;
1414
using global::Shared.IntegrationTesting;
1515
using global::Shared.Logger;
16+
using IntegrationTesting.Helpers;
1617
using SecurityService.Client;
1718

1819
/// <summary>
@@ -56,6 +57,14 @@ public DockerHelper()
5657

5758
#region Methods
5859

60+
public override async Task CreateSubscriptions(){
61+
List<(String streamName, String groupName, Int32 maxRetries)> subscriptions = SubscriptionsHelper.GetSubscriptions();
62+
foreach ((String streamName, String groupName, Int32 maxRetries) subscription in subscriptions)
63+
{
64+
await this.CreatePersistentSubscription(subscription);
65+
}
66+
}
67+
5968
/// <summary>
6069
/// Starts the containers for scenario run.
6170
/// </summary>

MessagingService.IntegrationTests/Common/GenericSteps.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
using System.Collections.Generic;
66
using System.Text;
77
using System.Threading.Tasks;
8-
using TechTalk.SpecFlow;
98

109
namespace MessagingService.IntegrationTests.Common
1110
{
11+
using Reqnroll;
12+
1213
[Binding]
1314
[Scope(Tag = "base")]
1415
public class GenericSteps
@@ -33,8 +34,16 @@ public async Task StartSystem()
3334
logger.Initialise(LogManager.GetLogger(scenarioName), scenarioName);
3435
LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);
3536

37+
DockerServices dockerServices = DockerServices.SqlServer | DockerServices.MessagingService | DockerServices.EventStore | DockerServices.SecurityService;
38+
3639
this.TestingContext.DockerHelper = new DockerHelper();
3740
this.TestingContext.DockerHelper.Logger = logger;
41+
this.TestingContext.Logger = logger;
42+
this.TestingContext.DockerHelper.RequiredDockerServices = dockerServices;
43+
this.TestingContext.Logger.LogInformation("About to Start Global Setup");
44+
45+
await Setup.GlobalSetup(this.TestingContext.DockerHelper);
46+
3847
this.TestingContext.DockerHelper.SqlServerContainer = Setup.DatabaseServerContainer;
3948
this.TestingContext.DockerHelper.SqlServerNetwork = Setup.DatabaseServerNetwork;
4049
this.TestingContext.DockerHelper.DockerCredentials = Setup.DockerCredentials;
@@ -45,16 +54,16 @@ public async Task StartSystem()
4554

4655
this.TestingContext.Logger = logger;
4756
this.TestingContext.Logger.LogInformation("About to Start Containers for Scenario Run");
48-
DockerServices dockerServices = DockerServices.MessagingService | DockerServices.EventStore | DockerServices.SecurityService;
4957
await this.TestingContext.DockerHelper.StartContainersForScenarioRun(scenarioName, dockerServices).ConfigureAwait(false);
5058
this.TestingContext.Logger.LogInformation("Containers for Scenario Run Started");
59+
5160
}
5261

5362
[AfterScenario]
54-
public async Task StopSystem()
55-
{
63+
public async Task StopSystem(){
64+
DockerServices dockerSharedServices = DockerServices.SqlServer;
5665
this.TestingContext.Logger.LogInformation("About to Stop Containers for Scenario Run");
57-
await this.TestingContext.DockerHelper.StopContainersForScenarioRun().ConfigureAwait(false);
66+
await this.TestingContext.DockerHelper.StopContainersForScenarioRun(dockerSharedServices).ConfigureAwait(false);
5867
this.TestingContext.Logger.LogInformation("Containers for Scenario Run Stopped");
5968
}
6069
}

MessagingService.IntegrationTests/Common/Setup.cs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,32 @@
44
using Shared.Logger;
55
using Shouldly;
66
using System;
7-
using TechTalk.SpecFlow;
87

98
namespace MessagingService.IntegrationTests.Common
109
{
10+
using System.Threading.Tasks;
11+
using global::Shared.IntegrationTesting;
12+
using Reqnroll;
13+
1114
[Binding]
1215
public class Setup
1316
{
1417
public static IContainerService DatabaseServerContainer;
1518
public static INetworkService DatabaseServerNetwork;
1619
public static (String usename, String password) SqlCredentials = ("sa", "thisisalongpassword123!");
1720
public static (String url, String username, String password) DockerCredentials = ("https://www.docker.com", "stuartferguson", "Sc0tland");
18-
[BeforeTestRun]
19-
protected static void GlobalSetup()
21+
22+
public static async Task GlobalSetup(DockerHelper dockerHelper)
2023
{
2124
ShouldlyConfiguration.DefaultTaskTimeout = TimeSpan.FromMinutes(1);
22-
23-
DockerHelper dockerHelper = new DockerHelper();
24-
25-
NlogLogger logger = new NlogLogger();
26-
logger.Initialise(LogManager.GetLogger("Specflow"), "Specflow");
27-
LogManager.AddHiddenAssembly(typeof(NlogLogger).Assembly);
28-
dockerHelper.Logger = logger;
2925
dockerHelper.SqlCredentials = Setup.SqlCredentials;
3026
dockerHelper.DockerCredentials = Setup.DockerCredentials;
3127
dockerHelper.SqlServerContainerName = "sharedsqlserver";
3228

33-
Setup.DatabaseServerNetwork = dockerHelper.SetupTestNetwork("sharednetwork", true);
34-
Setup.DatabaseServerContainer = dockerHelper.SetupSqlServerContainer(Setup.DatabaseServerNetwork);
29+
await Retry.For(async () => {
30+
Setup.DatabaseServerNetwork = dockerHelper.SetupTestNetwork("sharednetwork", true);
31+
Setup.DatabaseServerContainer = await dockerHelper.SetupSqlServerContainer(Setup.DatabaseServerNetwork);
32+
},TimeSpan.FromSeconds(60));
3533
}
3634

3735
public static String GetConnectionString(String databaseName)

0 commit comments

Comments
 (0)