Skip to content

Commit 5894e4f

Browse files
authored
Tests: Used named clients (#180)
1 parent 386afbf commit 5894e4f

12 files changed

+222
-61
lines changed

Tests/HiveMQtt.Test/HiveMQClient/ClientOptionsTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class ClientOptionsTest
88
[Fact]
99
public void Client_ID()
1010
{
11-
// var clientOptions = new HiveMQClientOptions();
1211
var client = new HiveMQClient();
1312

1413
Assert.NotNull(client.Options.ClientId);

Tests/HiveMQtt.Test/HiveMQClient/ConnectTest.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ public class ConnectTest
1414
[Fact]
1515
public async Task BasicConnectAndDisconnectAsync()
1616
{
17-
var client = new HiveMQClient();
17+
var options = new HiveMQClientOptionsBuilder().WithClientId("BasicConnectAndDisconnectAsync").Build();
18+
var client = new HiveMQClient(options);
1819
Assert.NotNull(client);
1920

2021
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
@@ -28,22 +29,27 @@ public async Task BasicConnectAndDisconnectAsync()
2829
var disconnectResult = await client.DisconnectAsync(disconnectOptions).ConfigureAwait(false);
2930
Assert.True(disconnectResult);
3031
Assert.False(client.IsConnected());
32+
33+
client.Dispose();
3134
}
3235

3336
[Fact]
3437
public async Task RaiseOnFailureToConnectAsync()
3538
{
3639
// Bad port number
37-
var clientOptions = new HiveMQClientOptionsBuilder().WithPort(0).Build();
40+
var clientOptions = new HiveMQClientOptionsBuilder().WithPort(0).WithClientId("RaiseOnFailureToConnectAsync").Build();
3841
var client = new HiveMQClient(clientOptions);
3942

4043
await Assert.ThrowsAsync<HiveMQttClientException>(client.ConnectAsync).ConfigureAwait(false);
44+
45+
client.Dispose();
4146
}
4247

4348
[Fact]
4449
public async Task TestConnectEventsAsync()
4550
{
46-
var client = new HiveMQClient();
51+
var options = new HiveMQClientOptionsBuilder().WithClientId("TestConnectEventsAsync").Build();
52+
var client = new HiveMQClient(options);
4753

4854
// Client Events
4955
client.BeforeConnect += BeforeConnectHandler;
@@ -85,12 +91,15 @@ public async Task TestConnectEventsAsync()
8591

8692
client.OnConnectSent -= OnConnectSentHandler;
8793
client.OnConnAckReceived -= OnConnAckReceivedHandler;
94+
95+
client.Dispose();
8896
}
8997

9098
[Fact]
9199
public async Task Test_AfterDisconnectEvent_Async()
92100
{
93-
var client = new HiveMQClient();
101+
var options = new HiveMQClientOptionsBuilder().WithClientId("Test_AfterDisconnectEvent_Async").Build();
102+
var client = new HiveMQClient(options);
94103

95104
// Client Events
96105
client.AfterDisconnect += AfterDisconnectHandler;
@@ -114,6 +123,8 @@ public async Task Test_AfterDisconnectEvent_Async()
114123

115124
// Remove event handlers
116125
client.AfterDisconnect -= AfterDisconnectHandler;
126+
127+
client.Dispose();
117128
}
118129

119130
private static void BeforeConnectHandler(object? sender, BeforeConnectEventArgs eventArgs)

Tests/HiveMQtt.Test/HiveMQClient/LWTTest.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public class LWTTest
1313
public async Task Last_Will_With_Properties_Async()
1414
{
1515
// Setup & Connect a client to listen for LWT
16-
var listenerClient = new HiveMQClient();
16+
var listenerOptions = new HiveMQClientOptionsBuilder().WithClientId("Last_Will_With_Properties_Async-Listener").Build();
17+
var listenerClient = new HiveMQClient(listenerOptions);
1718
var connectResult = await listenerClient.ConnectAsync().ConfigureAwait(false);
1819
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
1920
Assert.True(listenerClient.IsConnected());
@@ -54,6 +55,7 @@ public async Task Last_Will_With_Properties_Async()
5455
// Setup & Connect another client with a LWT
5556
var options = new HiveMQClientOptions
5657
{
58+
ClientId = "Last_Will_With_Properties_Async-LWTClient",
5759
LastWillAndTestament = new LastWillAndTestament("last/will2", "last will message"),
5860
};
5961

Tests/HiveMQtt.Test/HiveMQClient/LastWillAndTestamentBuilderTest.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public async Task Basic_Last_Will_Async()
3434
public async Task Last_Will_With_Properties_Async()
3535
{
3636
// Setup & Connect a client to listen for LWT
37-
var listenerClient = new HiveMQClient();
37+
var listenerOptions = new HiveMQClientOptionsBuilder().WithClientId("Last_Will_With_Properties_Async-Listener").Build();
38+
var listenerClient = new HiveMQClient(listenerOptions);
3839
var connectResult = await listenerClient.ConnectAsync().ConfigureAwait(false);
3940
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
4041
Assert.True(listenerClient.IsConnected());
@@ -86,6 +87,7 @@ public async Task Last_Will_With_Properties_Async()
8687
// Setup & Connect the client with LWT
8788
var options = new HiveMQClientOptions
8889
{
90+
ClientId = "Last_Will_With_Properties_Async-LWTClient",
8991
LastWillAndTestament = lwt,
9092
};
9193

@@ -103,5 +105,7 @@ public async Task Last_Will_With_Properties_Async()
103105
// Wait until the LWT message is received
104106
var taskResult = await taskLWTReceived.Task.WaitAsync(TimeSpan.FromSeconds(25)).ConfigureAwait(false);
105107
Assert.True(taskResult);
108+
109+
await listenerClient.DisconnectAsync().ConfigureAwait(false);
106110
}
107111
}

Tests/HiveMQtt.Test/HiveMQClient/Operational/QueuedPublishesTest.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private async Task<int> PublisherClientAsync()
5353
await publishClient.PublishAsync(firstTopic, payload, QualityOfService.ExactlyOnceDelivery).ConfigureAwait(false);
5454
}
5555

56+
await publishClient.DisconnectAsync().ConfigureAwait(false);
5657
return batchSize;
5758
}
5859

@@ -88,6 +89,7 @@ private async Task<int> RelayClientAsync()
8889

8990
// Wait until all messages are relayed
9091
await Task.Delay(5000).ConfigureAwait(false);
92+
await subscribeClient.DisconnectAsync().ConfigureAwait(false);
9193
return relayCount;
9294
}
9395

@@ -113,6 +115,8 @@ private async Task<int> ReceiverClientAsync()
113115

114116
// Wait for the receiver to receive all messages
115117
await Task.Delay(5000).ConfigureAwait(false);
118+
await receiverClient.DisconnectAsync().ConfigureAwait(false);
119+
116120
return receivedCount;
117121
}
118122
}

Tests/HiveMQtt.Test/HiveMQClient/PubSubTest.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public async Task MostBasicPubSubAsync()
1313
{
1414
var testTopic = "tests/MostBasicPubSubAsync";
1515
var testPayload = new string(/*lang=json,strict*/ "{\"interference\": \"1029384\"}");
16-
var client = new HiveMQClient();
16+
var options = new HiveMQClientOptionsBuilder().WithClientId("MostBasicPubSubAsync").Build();
17+
var client = new HiveMQClient(options);
1718
var taskCompletionSource = new TaskCompletionSource<bool>();
1819

1920
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
@@ -47,14 +48,17 @@ public async Task MostBasicPubSubAsync()
4748

4849
var taskResult = await taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(5)).ConfigureAwait(false);
4950
Assert.True(taskResult);
51+
52+
client.Dispose();
5053
}
5154

5255
[Fact]
5356
public async Task QoS1PubSubAsync()
5457
{
5558
var testTopic = "tests/QoS1PubSubAsync";
5659
var testPayload = new string(/*lang=json,strict*/ "{\"interference\": \"1029384\"}");
57-
var client = new HiveMQClient();
60+
var options = new HiveMQClientOptionsBuilder().WithClientId("MostBasicPubSubAsync").Build();
61+
var client = new HiveMQClient(options);
5862
var taskCompletionSource = new TaskCompletionSource<bool>();
5963
var messagesReceived = 0;
6064

@@ -93,6 +97,8 @@ public async Task QoS1PubSubAsync()
9397

9498
var taskResult = await taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(5)).ConfigureAwait(false);
9599
Assert.True(taskResult);
100+
101+
client.Dispose();
96102
}
97103

98104
[Fact]
@@ -101,7 +107,8 @@ public async Task QoS2PubSubAsync()
101107
var testTopic = "tests/QoS2PubSubAsync";
102108
var testPayload = new string(/*lang=json,strict*/ "{\"interference\": \"1029384\"}");
103109

104-
var client = new HiveMQClient();
110+
var options = new HiveMQClientOptionsBuilder().WithClientId("QoS2PubSubAsync").Build();
111+
var client = new HiveMQClient(options);
105112
var taskCompletionSource = new TaskCompletionSource<bool>();
106113
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
107114
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
@@ -141,14 +148,17 @@ public async Task QoS2PubSubAsync()
141148

142149
var taskResult = await taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(5)).ConfigureAwait(false);
143150
Assert.True(taskResult);
151+
152+
client.Dispose();
144153
}
145154

146155
[Fact]
147156
public async Task LargeMessagePubSubAsync()
148157
{
149158
var testTopic = "tests/LargeMessagePubSubAsync";
150159
var testPayload = "1. A delusion starts like any other idea, as an egg. Identical on the outside, perfectly formed. From the shell, you'd never know anything was wrong. It's what's inside that matters. 2. A delusion starts like any other idea, as an egg. Identical on the outside, perfectly formed. From the shell, you'd never know anything was wrong. It's what's inside that matters. 3. A delusion starts like any other idea, as an egg. Identical on the outside, perfectly formed. From the shell, you'd never know anything was wrong. It's what's inside that matters.";
151-
var client = new HiveMQClient();
160+
var options = new HiveMQClientOptionsBuilder().WithClientId("LargeMessagePubSubAsync").Build();
161+
var client = new HiveMQClient(options);
152162
var taskCompletionSource = new TaskCompletionSource<bool>();
153163

154164
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
@@ -184,6 +194,8 @@ public async Task LargeMessagePubSubAsync()
184194

185195
var taskResult = await taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(5)).ConfigureAwait(false);
186196
Assert.True(taskResult);
197+
198+
client.Dispose();
187199
}
188200

189201
[Fact]
@@ -198,7 +210,8 @@ public async Task OneMBMessagePubSubAsync()
198210
testPayload[i] = 0x05;
199211
}
200212

201-
var client = new HiveMQClient();
213+
var options = new HiveMQClientOptionsBuilder().WithClientId("OneMBMessagePubSubAsync").Build();
214+
var client = new HiveMQClient(options);
202215
var taskCompletionSource = new TaskCompletionSource<bool>();
203216

204217
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
@@ -240,5 +253,7 @@ public async Task OneMBMessagePubSubAsync()
240253

241254
var taskResult = await taskCompletionSource.Task.WaitAsync(TimeSpan.FromSeconds(15)).ConfigureAwait(false);
242255
Assert.True(taskResult);
256+
257+
client.Dispose();
243258
}
244259
}

Tests/HiveMQtt.Test/HiveMQClient/PublishBuilderTest.cs

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ public class PublishBuilderTest
1414
[Fact]
1515
public async Task MostBasicPublishWithQoS0Async()
1616
{
17-
var client = new HiveMQClient();
17+
var options = new HiveMQClientOptionsBuilder().WithClientId("MostBasicPublishWithQoS0Async").Build();
18+
var client = new HiveMQClient(options);
1819
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
1920
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
2021

@@ -32,12 +33,15 @@ public async Task MostBasicPublishWithQoS0Async()
3233

3334
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
3435
Assert.True(disconnectResult);
36+
37+
client.Dispose();
3538
}
3639

3740
[Fact]
3841
public async Task MostBasicPublishWithQoS1Async()
3942
{
40-
var client = new HiveMQClient();
43+
var options = new HiveMQClientOptionsBuilder().WithClientId("MostBasicPublishWithQoS1Async").Build();
44+
var client = new HiveMQClient(options);
4145
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
4246
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
4347

@@ -54,12 +58,15 @@ public async Task MostBasicPublishWithQoS1Async()
5458

5559
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
5660
Assert.True(disconnectResult);
61+
62+
client.Dispose();
5763
}
5864

5965
[Fact]
6066
public async Task MostBasicPublishWithQoS2Async()
6167
{
62-
var client = new HiveMQClient();
68+
var options = new HiveMQClientOptionsBuilder().WithClientId("MostBasicPublishWithQoS2Async").Build();
69+
var client = new HiveMQClient(options);
6370
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
6471
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
6572

@@ -76,12 +83,15 @@ public async Task MostBasicPublishWithQoS2Async()
7683

7784
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
7885
Assert.True(disconnectResult);
86+
87+
client.Dispose();
7988
}
8089

8190
[Fact]
8291
public async Task MultiPublishWithQoS0Async()
8392
{
84-
var client = new HiveMQClient();
93+
var options = new HiveMQClientOptionsBuilder().WithClientId("MultiPublishWithQoS0Async").Build();
94+
var client = new HiveMQClient(options);
8595
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
8696
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
8797

@@ -104,12 +114,15 @@ public async Task MultiPublishWithQoS0Async()
104114

105115
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
106116
Assert.True(disconnectResult);
117+
118+
client.Dispose();
107119
}
108120

109121
[Fact]
110122
public async Task MultiPublishWithQoS1Async()
111123
{
112-
var client = new HiveMQClient();
124+
var options = new HiveMQClientOptionsBuilder().WithClientId("MultiPublishWithQoS1Async").Build();
125+
var client = new HiveMQClient(options);
113126
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
114127
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
115128

@@ -130,12 +143,15 @@ public async Task MultiPublishWithQoS1Async()
130143

131144
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
132145
Assert.True(disconnectResult);
146+
147+
client.Dispose();
133148
}
134149

135150
[Fact]
136151
public async Task MultiPublishWithQoS2Async()
137152
{
138-
var client = new HiveMQClient();
153+
var options = new HiveMQClientOptionsBuilder().WithClientId("MultiPublishWithQoS2Async").Build();
154+
var client = new HiveMQClient(options);
139155
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
140156
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
141157

@@ -155,12 +171,15 @@ public async Task MultiPublishWithQoS2Async()
155171

156172
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
157173
Assert.True(disconnectResult);
174+
175+
client.Dispose();
158176
}
159177

160178
[Fact]
161179
public async Task PublishWithOptionsAsync()
162180
{
163-
var client = new HiveMQClient();
181+
var options = new HiveMQClientOptionsBuilder().WithClientId("PublishWithOptionsAsync").Build();
182+
var client = new HiveMQClient(options);
164183
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
165184
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
166185

@@ -180,12 +199,15 @@ public async Task PublishWithOptionsAsync()
180199

181200
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
182201
Assert.True(disconnectResult);
202+
203+
client.Dispose();
183204
}
184205

185206
[Fact]
186207
public async Task PublishPayloadFormatIndicatorAsync()
187208
{
188-
var client = new HiveMQClient();
209+
var options = new HiveMQClientOptionsBuilder().WithClientId("PublishPayloadFormatIndicatorAsync").Build();
210+
var client = new HiveMQClient(options);
189211
var connectResult = await client.ConnectAsync().ConfigureAwait(false);
190212
Assert.True(connectResult.ReasonCode == ConnAckReasonCode.Success);
191213

@@ -208,5 +230,7 @@ public async Task PublishPayloadFormatIndicatorAsync()
208230

209231
var disconnectResult = await client.DisconnectAsync().ConfigureAwait(false);
210232
Assert.True(disconnectResult);
233+
234+
client.Dispose();
211235
}
212236
}

0 commit comments

Comments
 (0)