Skip to content

Commit c7d69f0

Browse files
authored
Merge pull request #148 from TraGicCode/chore/dog-food-off-raw-endpoint-factory-inside-of-integration-tests
Update integration tests to dogfood off of rawendpoint factory from busly
2 parents d92f103 + b6eccff commit c7d69f0

14 files changed

+107
-247
lines changed

src/BuslyCLI.Console/Factories/IRawEndpointFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace BuslyCLI.Factories;
44

55
public interface IRawEndpointFactory
66
{
7-
Task<RawEndpoint> CreateRawEndpoint(string endpointName, TransportConfig transportConfig);
7+
Task<RawEndpoint> CreateRawEndpoint(string endpointName, TransportConfig transportConfig, bool setupInfrastructure = true);
88

99
Task<RawSendOnlyEndpoint> CreateRawSendOnlyEndpoint(string endpointName, TransportConfig transportConfig);
1010
}

src/BuslyCLI.Console/Factories/RawEndpoint.cs

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

88
namespace BuslyCLI.Factories;
99

10-
public class RawEndpoint(TransportInfrastructure infrastructure) : RawSendOnlyEndpoint(infrastructure)
10+
public class RawEndpoint(TransportInfrastructure infrastructure, string endpointName) : RawSendOnlyEndpoint(infrastructure, endpointName)
1111
{
1212
private static readonly TimeSpan IncomingMessageTimeout = TimeSpan.FromSeconds(5);
1313
private readonly BlockingCollection<IncomingMessage> _receivedMessages = new();

src/BuslyCLI.Console/Factories/RawEndpointFactory.cs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ namespace BuslyCLI.Factories;
1010

1111
public class RawEndpointFactory : IRawEndpointFactory
1212
{
13-
public async Task<RawEndpoint> CreateRawEndpoint(string endpointName, TransportConfig transportConfig)
13+
public async Task<RawEndpoint> CreateRawEndpoint(string endpointName, TransportConfig transportConfig, bool setupInfrastructure = true)
1414
{
1515
var transport = CreateTransport(transportConfig);
16-
return await InternalCreateEndpoint(endpointName, transport);
16+
return await InternalCreateEndpoint(endpointName, transport, setupInfrastructure);
1717
}
1818

1919
public async Task<RawSendOnlyEndpoint> CreateRawSendOnlyEndpoint(string endpointName, TransportConfig transportConfig)
@@ -148,14 +148,16 @@ private AzureServiceBusTransport CreateAzureServiceBusTransport(string transport
148148

149149
private static async Task<RawEndpoint> InternalCreateEndpoint(
150150
string endpointName,
151-
TransportDefinition transport)
151+
TransportDefinition transport,
152+
bool setupInfrastructure = true)
152153
{
153154
var infrastructure = await InternalCreateInfrastructure(
154155
endpointName,
155156
transport,
156-
isReceiveEnabled: true);
157+
isReceiveEnabled: true,
158+
setupInfrastructure);
157159

158-
return new RawEndpoint(infrastructure);
160+
return new RawEndpoint(infrastructure, endpointName);
159161
}
160162

161163
private static async Task<RawSendOnlyEndpoint> InternalCreateSendOnlyEndpoint(
@@ -165,15 +167,17 @@ private static async Task<RawSendOnlyEndpoint> InternalCreateSendOnlyEndpoint(
165167
var infrastructure = await InternalCreateInfrastructure(
166168
endpointName,
167169
transport,
168-
isReceiveEnabled: false);
170+
isReceiveEnabled: false,
171+
setupInfrastructure: false);
169172

170-
return new RawSendOnlyEndpoint(infrastructure);
173+
return new RawSendOnlyEndpoint(infrastructure, endpointName);
171174
}
172175

173176
private static async Task<TransportInfrastructure> InternalCreateInfrastructure(
174177
string endpointName,
175178
TransportDefinition transport,
176-
bool isReceiveEnabled)
179+
bool isReceiveEnabled,
180+
bool setupInfrastructure)
177181
{
178182
var hostSettings = new HostSettings(
179183
endpointName,
@@ -183,7 +187,7 @@ private static async Task<TransportInfrastructure> InternalCreateInfrastructure(
183187
{
184188
// Console.WriteLine("Critical error: " + exception);
185189
},
186-
isReceiveEnabled);
190+
setupInfrastructure);
187191

188192
var infrastructure = await transport.Initialize(hostSettings,
189193
isReceiveEnabled

src/BuslyCLI.Console/Factories/RawSendOnlyEndpoint.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ namespace BuslyCLI.Factories;
55
public class RawSendOnlyEndpoint
66
{
77
protected readonly TransportInfrastructure _infrastructure;
8+
public string EndpointName { get; }
89

910

10-
public RawSendOnlyEndpoint(TransportInfrastructure infrastructure)
11+
public RawSendOnlyEndpoint(TransportInfrastructure infrastructure, string endpointName)
1112
{
1213
_infrastructure = infrastructure;
14+
EndpointName = endpointName;
1315
}
1416

1517
public async Task Dispatch(TransportOperations outgoingMessages, TransportTransaction transaction,

tests/BuslyCLI.Console.Tests/EndToEnd/AmazonSQS/SendCommandAmazonSqsEndToEndAmazonSqsTests.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System.Text;
22
using System.Text.Json;
3-
using BuslyCLI.Console.Tests.EndToEnd.Infrastructure;
3+
using BuslyCLI.Config;
44
using BuslyCLI.Console.Tests.TestHelpers;
55
using BuslyCLI.DependencyInjection;
6+
using BuslyCLI.Factories;
67
using BuslyCLI.Spectre;
78
using Microsoft.Extensions.DependencyInjection;
89
using Spectre.Console.Cli.Extensions.DependencyInjection;
@@ -110,9 +111,19 @@ await RunWithTestEndpoint(async testEndpoint =>
110111
});
111112
}
112113

113-
private async Task RunWithTestEndpoint(Func<TestEndpoint, Task> testAction)
114+
private async Task RunWithTestEndpoint(Func<RawEndpoint, Task> testAction)
114115
{
115-
var testEndpoint = await new TestEndpointFactory().CreateAmazonSQSTestEndpoint(Container.GetConnectionString());
116+
var testEndpoint = await new RawEndpointFactory().CreateRawEndpoint(TestEndpointNameGenerator.GenerateUniqueEndpointName(), new TransportConfig()
117+
{
118+
AmazonsqsTransportConfig = new AmazonsqsTransportConfig()
119+
{
120+
ServiceUrl = Container.GetConnectionString(),
121+
RegionName = "us-east-1",
122+
AccessKey = "test",
123+
SecretKey = "test"
124+
}
125+
});
126+
116127

117128
try
118129
{

tests/BuslyCLI.Console.Tests/EndToEnd/AzureServiceBus/SendCommandAzureServiceBusEndToEndTests.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System.Text;
22
using System.Text.Json;
3-
using BuslyCLI.Console.Tests.EndToEnd.Infrastructure;
3+
using BuslyCLI.Config;
44
using BuslyCLI.Console.Tests.TestHelpers;
55
using BuslyCLI.DependencyInjection;
6+
using BuslyCLI.Factories;
67
using BuslyCLI.Spectre;
78
using Microsoft.Extensions.DependencyInjection;
89
using Spectre.Console.Cli.Extensions.DependencyInjection;
@@ -116,11 +117,17 @@ await RunWithTestEndpoint(async testEndpoint =>
116117
});
117118
}
118119

119-
private async Task RunWithTestEndpoint(Func<TestEndpoint, Task> testAction)
120+
private async Task RunWithTestEndpoint(Func<RawEndpoint, Task> testAction)
120121
{
121122
var random = new Random();
122123
var testEndpointName = GeneratedTestEndpointNamesAndSubscribedEvent[random.Next(GeneratedTestEndpointNamesAndSubscribedEvent.Count)];
123-
var testEndpoint = await new TestEndpointFactory().CreateAzureServiceBusTestEndpoint(testEndpointName.Item1, Container.GetConnectionString());
124+
var testEndpoint = await new RawEndpointFactory().CreateRawEndpoint(testEndpointName.Item1, new TransportConfig()
125+
{
126+
AzureServiceBusTransportConfig = new AzureServiceBusTransportConfig()
127+
{
128+
ConnectionString = Container.GetConnectionString()
129+
}
130+
}, false);
124131

125132
await testAction(testEndpoint);
126133
await testEndpoint.ShutDownAndCleanUp();

tests/BuslyCLI.Console.Tests/EndToEnd/AzureStorageQueues/SendCommandAzureStorageQueuesEndToEndTests.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
using System.Text;
22
using System.Text.Json;
3-
using BuslyCLI.Console.Tests.EndToEnd.Infrastructure;
3+
using BuslyCLI.Config;
44
using BuslyCLI.Console.Tests.TestHelpers;
55
using BuslyCLI.DependencyInjection;
6+
using BuslyCLI.Factories;
67
using BuslyCLI.Spectre;
78
using Microsoft.Extensions.DependencyInjection;
89
using Spectre.Console.Cli.Extensions.DependencyInjection;
@@ -109,9 +110,15 @@ await RunWithTestEndpoint(async testEndpoint =>
109110
// Test Endpoint
110111
// Example of how to wait for and get messages
111112
// https://github.com/Particular/NServiceBus.RabbitMQ/blob/dba627a5a2c50519d7a2466efe3f76c8d5c8828d/src/NServiceBus.Transport.RabbitMQ.Tests/RabbitMqContext.cs#L41
112-
private async Task RunWithTestEndpoint(Func<TestEndpoint, Task> testAction)
113+
private async Task RunWithTestEndpoint(Func<RawEndpoint, Task> testAction)
113114
{
114-
var testEndpoint = await new TestEndpointFactory().CreateAzureStorageQueuesTestEndpoint(Container.GetConnectionString());
115+
var testEndpoint = await new RawEndpointFactory().CreateRawEndpoint(TestEndpointNameGenerator.GenerateUniqueEndpointName(), new TransportConfig()
116+
{
117+
AzureStorageQueuesTransportConfig = new AzureStorageQueuesTransportConfig()
118+
{
119+
ConnectionString = Container.GetConnectionString()
120+
}
121+
});
115122

116123
await testAction(testEndpoint);
117124
await testEndpoint.ShutDownAndCleanUp();

tests/BuslyCLI.Console.Tests/EndToEnd/Infrastructure/ITestEndpointFactory.cs

Lines changed: 0 additions & 118 deletions
This file was deleted.

0 commit comments

Comments
 (0)