Skip to content

Commit aefb55c

Browse files
committed
Tests & TransportReadResult
1 parent 80ed481 commit aefb55c

File tree

3 files changed

+117
-104
lines changed

3 files changed

+117
-104
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright 2024-present HiveMQ and the HiveMQ Community
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
namespace HiveMQtt.Client.Transport;
17+
18+
using System.Buffers;
19+
20+
public class TransportReadResult
21+
{
22+
public bool Failed { get; set; }
23+
24+
public ReadOnlySequence<byte> Buffer { get; set; }
25+
26+
public TransportReadResult(ReadOnlySequence<byte> buffer)
27+
{
28+
this.Failed = false;
29+
this.Buffer = buffer;
30+
}
31+
32+
public TransportReadResult(bool failed)
33+
{
34+
this.Failed = failed;
35+
this.Buffer = default;
36+
}
37+
}

Tests/HiveMQtt.Test/HiveMQClient/ClientTest.cs

Lines changed: 35 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -50,24 +50,18 @@ public async Task ClientStateAsync()
5050

5151
// Validate private internals of the HiveMQtt client
5252

53-
// Socket Stuff
54-
Assert.Null(client.Socket);
55-
Assert.Null(client.Stream);
56-
Assert.Null(client.Reader);
57-
Assert.Null(client.Writer);
58-
5953
// Task Stuff
60-
Assert.Null(client.ConnectionWriterTask);
61-
Assert.Null(client.ConnectionReaderTask);
62-
Assert.Null(client.ReceivedPacketsHandlerTask);
63-
Assert.Null(client.ConnectionMonitorTask);
54+
Assert.Null(client.Connection.ConnectionWriterTask);
55+
Assert.Null(client.Connection.ConnectionReaderTask);
56+
Assert.Null(client.Connection.ReceivedPacketsHandlerTask);
57+
Assert.Null(client.Connection.ConnectionMonitorTask);
6458

6559
// Queues
66-
Assert.NotNull(client.SendQueue);
67-
Assert.NotNull(client.ReceivedQueue);
60+
Assert.NotNull(client.Connection.SendQueue);
61+
Assert.NotNull(client.Connection.ReceivedQueue);
6862

6963
// State
70-
Assert.Equal(ConnectState.Disconnected, client.ConnectState);
64+
Assert.Equal(ConnectState.Disconnected, client.Connection.State);
7165

7266
// *************************************
7367
// Connect and validate internals again
@@ -78,29 +72,23 @@ public async Task ClientStateAsync()
7872
// Wait for connack
7973
await Task.Delay(1000).ConfigureAwait(false);
8074

81-
// Socket Stuff
82-
Assert.NotNull(client.Socket);
83-
Assert.NotNull(client.Stream);
84-
Assert.NotNull(client.Reader);
85-
Assert.NotNull(client.Writer);
86-
8775
// Task Stuff
88-
Assert.NotNull(client.ConnectionWriterTask);
89-
Assert.NotNull(client.ConnectionReaderTask);
90-
Assert.NotNull(client.ReceivedPacketsHandlerTask);
91-
Assert.NotNull(client.ConnectionMonitorTask);
76+
Assert.NotNull(client.Connection.ConnectionWriterTask);
77+
Assert.NotNull(client.Connection.ConnectionReaderTask);
78+
Assert.NotNull(client.Connection.ReceivedPacketsHandlerTask);
79+
Assert.NotNull(client.Connection.ConnectionMonitorTask);
9280

93-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionWriterTask.Status);
94-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionReaderTask.Status);
95-
Assert.Equal(TaskStatus.WaitingForActivation, client.ReceivedPacketsHandlerTask.Status);
96-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionMonitorTask.Status);
81+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionWriterTask.Status);
82+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionReaderTask.Status);
83+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ReceivedPacketsHandlerTask.Status);
84+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionMonitorTask.Status);
9785

9886
// Queues
99-
Assert.NotNull(client.SendQueue);
100-
Assert.NotNull(client.ReceivedQueue);
87+
Assert.NotNull(client.Connection.SendQueue);
88+
Assert.NotNull(client.Connection.ReceivedQueue);
10189

10290
// State
103-
Assert.Equal(ConnectState.Connected, client.ConnectState);
91+
Assert.Equal(ConnectState.Connected, client.Connection.State);
10492

10593
// *************************************
10694
// Do some stuff and validate internals again
@@ -121,26 +109,20 @@ public async Task ClientStateAsync()
121109
new string("♚ ♛ ♜ ♝ ♞ ♟ ♔ ♕ ♖ ♗ ♘ ♙"),
122110
MQTT5.Types.QualityOfService.ExactlyOnceDelivery).ConfigureAwait(false);
123111

124-
// Socket Stuff
125-
Assert.NotNull(client.Socket);
126-
Assert.NotNull(client.Stream);
127-
Assert.NotNull(client.Reader);
128-
Assert.NotNull(client.Writer);
129-
130112
// Task Stuff
131-
Assert.NotNull(client.ConnectionWriterTask);
132-
Assert.NotNull(client.ConnectionReaderTask);
133-
Assert.NotNull(client.ReceivedPacketsHandlerTask);
134-
Assert.NotNull(client.ConnectionMonitorTask);
113+
Assert.NotNull(client.Connection.ConnectionWriterTask);
114+
Assert.NotNull(client.Connection.ConnectionReaderTask);
115+
Assert.NotNull(client.Connection.ReceivedPacketsHandlerTask);
116+
Assert.NotNull(client.Connection.ConnectionMonitorTask);
135117

136-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionWriterTask.Status);
137-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionReaderTask.Status);
138-
Assert.Equal(TaskStatus.WaitingForActivation, client.ReceivedPacketsHandlerTask.Status);
139-
Assert.Equal(TaskStatus.WaitingForActivation, client.ConnectionMonitorTask.Status);
118+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionWriterTask.Status);
119+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionReaderTask.Status);
120+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ReceivedPacketsHandlerTask.Status);
121+
Assert.Equal(TaskStatus.WaitingForActivation, client.Connection.ConnectionMonitorTask.Status);
140122

141123
// Queues
142-
Assert.NotNull(client.SendQueue);
143-
Assert.NotNull(client.ReceivedQueue);
124+
Assert.NotNull(client.Connection.SendQueue);
125+
Assert.NotNull(client.Connection.ReceivedQueue);
144126

145127
// *************************************
146128
// Disconnect and validate internals again
@@ -150,23 +132,17 @@ public async Task ClientStateAsync()
150132
// Wait for disconnect to take affect
151133
await Task.Delay(1000).ConfigureAwait(false);
152134

153-
// Socket Stuff
154-
Assert.Null(client.Socket);
155-
Assert.Null(client.Stream);
156-
Assert.Null(client.Reader);
157-
Assert.Null(client.Writer);
158-
159135
// Task Stuff
160-
Assert.Null(client.ConnectionWriterTask);
161-
Assert.Null(client.ConnectionReaderTask);
162-
Assert.Null(client.ReceivedPacketsHandlerTask);
163-
Assert.Null(client.ConnectionMonitorTask);
136+
Assert.Null(client.Connection.ConnectionWriterTask);
137+
Assert.Null(client.Connection.ConnectionReaderTask);
138+
Assert.Null(client.Connection.ReceivedPacketsHandlerTask);
139+
Assert.Null(client.Connection.ConnectionMonitorTask);
164140

165141
// Queues
166-
Assert.NotNull(client.SendQueue);
167-
Assert.NotNull(client.ReceivedQueue);
142+
Assert.NotNull(client.Connection.SendQueue);
143+
Assert.NotNull(client.Connection.ReceivedQueue);
168144

169145
// State
170-
Assert.Equal(ConnectState.Disconnected, client.ConnectState);
146+
Assert.Equal(ConnectState.Disconnected, client.Connection.State);
171147
}
172148
}

Tests/HiveMQtt.Test/HiveMQClient/PublishTest.cs

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -276,25 +276,25 @@ void Client3MessageHandler(object? sender, OnMessageReceivedEventArgs eventArgs)
276276
Assert.Equal(10, client2MessageCount);
277277
Assert.Equal(10, client3MessageCount);
278278

279-
Assert.Equal(0, client1.OutgoingPublishQueue.Count);
280-
Assert.Equal(0, client2.OutgoingPublishQueue.Count);
281-
Assert.Equal(0, client3.OutgoingPublishQueue.Count);
279+
Assert.Equal(0, client1.Connection.OutgoingPublishQueue.Count);
280+
Assert.Equal(0, client2.Connection.OutgoingPublishQueue.Count);
281+
Assert.Equal(0, client3.Connection.OutgoingPublishQueue.Count);
282282

283-
Assert.Equal(0, client1.ReceivedQueue.Count);
284-
Assert.Equal(0, client2.ReceivedQueue.Count);
285-
Assert.Equal(0, client3.ReceivedQueue.Count);
283+
Assert.Equal(0, client1.Connection.ReceivedQueue.Count);
284+
Assert.Equal(0, client2.Connection.ReceivedQueue.Count);
285+
Assert.Equal(0, client3.Connection.ReceivedQueue.Count);
286286

287-
Assert.Equal(0, client1.SendQueue.Count);
288-
Assert.Equal(0, client2.SendQueue.Count);
289-
Assert.Equal(0, client3.SendQueue.Count);
287+
Assert.Equal(0, client1.Connection.SendQueue.Count);
288+
Assert.Equal(0, client2.Connection.SendQueue.Count);
289+
Assert.Equal(0, client3.Connection.SendQueue.Count);
290290

291-
Assert.Equal(0, client1.OPubTransactionQueue.Count);
292-
Assert.Equal(0, client2.OPubTransactionQueue.Count);
293-
Assert.Equal(0, client3.OPubTransactionQueue.Count);
291+
Assert.Equal(0, client1.Connection.OPubTransactionQueue.Count);
292+
Assert.Equal(0, client2.Connection.OPubTransactionQueue.Count);
293+
Assert.Equal(0, client3.Connection.OPubTransactionQueue.Count);
294294

295-
Assert.Equal(0, client1.IPubTransactionQueue.Count);
296-
Assert.Equal(0, client2.IPubTransactionQueue.Count);
297-
Assert.Equal(0, client3.IPubTransactionQueue.Count);
295+
Assert.Equal(0, client1.Connection.IPubTransactionQueue.Count);
296+
Assert.Equal(0, client2.Connection.IPubTransactionQueue.Count);
297+
Assert.Equal(0, client3.Connection.IPubTransactionQueue.Count);
298298

299299
// All done, disconnect all clients
300300
var disconnectResult = await client1.DisconnectAsync().ConfigureAwait(false);
@@ -380,25 +380,25 @@ void Client3MessageHandler(object? sender, OnMessageReceivedEventArgs eventArgs)
380380
Assert.Equal(10, client2MessageCount);
381381
Assert.Equal(10, client3MessageCount);
382382

383-
Assert.Equal(0, client1.OutgoingPublishQueue.Count);
384-
Assert.Equal(0, client2.OutgoingPublishQueue.Count);
385-
Assert.Equal(0, client3.OutgoingPublishQueue.Count);
383+
Assert.Equal(0, client1.Connection.OutgoingPublishQueue.Count);
384+
Assert.Equal(0, client2.Connection.OutgoingPublishQueue.Count);
385+
Assert.Equal(0, client3.Connection.OutgoingPublishQueue.Count);
386386

387-
Assert.Equal(0, client1.ReceivedQueue.Count);
388-
Assert.Equal(0, client2.ReceivedQueue.Count);
389-
Assert.Equal(0, client3.ReceivedQueue.Count);
387+
Assert.Equal(0, client1.Connection.ReceivedQueue.Count);
388+
Assert.Equal(0, client2.Connection.ReceivedQueue.Count);
389+
Assert.Equal(0, client3.Connection.ReceivedQueue.Count);
390390

391-
Assert.Equal(0, client1.SendQueue.Count);
392-
Assert.Equal(0, client2.SendQueue.Count);
393-
Assert.Equal(0, client3.SendQueue.Count);
391+
Assert.Equal(0, client1.Connection.SendQueue.Count);
392+
Assert.Equal(0, client2.Connection.SendQueue.Count);
393+
Assert.Equal(0, client3.Connection.SendQueue.Count);
394394

395-
Assert.Equal(0, client1.OPubTransactionQueue.Count);
396-
Assert.Equal(0, client2.OPubTransactionQueue.Count);
397-
Assert.Equal(0, client3.OPubTransactionQueue.Count);
395+
Assert.Equal(0, client1.Connection.OPubTransactionQueue.Count);
396+
Assert.Equal(0, client2.Connection.OPubTransactionQueue.Count);
397+
Assert.Equal(0, client3.Connection.OPubTransactionQueue.Count);
398398

399-
Assert.Equal(0, client1.IPubTransactionQueue.Count);
400-
Assert.Equal(0, client2.IPubTransactionQueue.Count);
401-
Assert.Equal(0, client3.IPubTransactionQueue.Count);
399+
Assert.Equal(0, client1.Connection.IPubTransactionQueue.Count);
400+
Assert.Equal(0, client2.Connection.IPubTransactionQueue.Count);
401+
Assert.Equal(0, client3.Connection.IPubTransactionQueue.Count);
402402

403403
// All done, disconnect all clients
404404
var disconnectResult = await client1.DisconnectAsync().ConfigureAwait(false);
@@ -483,25 +483,25 @@ void Client3MessageHandler(object? sender, OnMessageReceivedEventArgs eventArgs)
483483
Assert.Equal(10, client2MessageCount);
484484
Assert.Equal(10, client3MessageCount);
485485

486-
Assert.Equal(0, client1.OutgoingPublishQueue.Count);
487-
Assert.Equal(0, client2.OutgoingPublishQueue.Count);
488-
Assert.Equal(0, client3.OutgoingPublishQueue.Count);
486+
Assert.Equal(0, client1.Connection.OutgoingPublishQueue.Count);
487+
Assert.Equal(0, client2.Connection.OutgoingPublishQueue.Count);
488+
Assert.Equal(0, client3.Connection.OutgoingPublishQueue.Count);
489489

490-
Assert.Equal(0, client1.ReceivedQueue.Count);
491-
Assert.Equal(0, client2.ReceivedQueue.Count);
492-
Assert.Equal(0, client3.ReceivedQueue.Count);
490+
Assert.Equal(0, client1.Connection.ReceivedQueue.Count);
491+
Assert.Equal(0, client2.Connection.ReceivedQueue.Count);
492+
Assert.Equal(0, client3.Connection.ReceivedQueue.Count);
493493

494-
Assert.Equal(0, client1.SendQueue.Count);
495-
Assert.Equal(0, client2.SendQueue.Count);
496-
Assert.Equal(0, client3.SendQueue.Count);
494+
Assert.Equal(0, client1.Connection.SendQueue.Count);
495+
Assert.Equal(0, client2.Connection.SendQueue.Count);
496+
Assert.Equal(0, client3.Connection.SendQueue.Count);
497497

498-
Assert.Equal(0, client1.OPubTransactionQueue.Count);
499-
Assert.Equal(0, client2.OPubTransactionQueue.Count);
500-
Assert.Equal(0, client3.OPubTransactionQueue.Count);
498+
Assert.Equal(0, client1.Connection.OPubTransactionQueue.Count);
499+
Assert.Equal(0, client2.Connection.OPubTransactionQueue.Count);
500+
Assert.Equal(0, client3.Connection.OPubTransactionQueue.Count);
501501

502-
Assert.Equal(0, client1.IPubTransactionQueue.Count);
503-
Assert.Equal(0, client2.IPubTransactionQueue.Count);
504-
Assert.Equal(0, client3.IPubTransactionQueue.Count);
502+
Assert.Equal(0, client1.Connection.IPubTransactionQueue.Count);
503+
Assert.Equal(0, client2.Connection.IPubTransactionQueue.Count);
504+
Assert.Equal(0, client3.Connection.IPubTransactionQueue.Count);
505505

506506
// All done, disconnect all clients
507507
var disconnectResult = await client1.DisconnectAsync().ConfigureAwait(false);

0 commit comments

Comments
 (0)