mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-25 23:53:07 +08:00
Improve unit tests.
This commit is contained in:
@@ -10,6 +10,8 @@ namespace MQTTnet.Implementations
|
|||||||
{
|
{
|
||||||
readonly Socket _socket;
|
readonly Socket _socket;
|
||||||
|
|
||||||
|
NetworkStream _networkStream;
|
||||||
|
|
||||||
public CrossPlatformSocket(AddressFamily addressFamily)
|
public CrossPlatformSocket(AddressFamily addressFamily)
|
||||||
{
|
{
|
||||||
_socket = new Socket(addressFamily, SocketType.Stream, ProtocolType.Tcp);
|
_socket = new Socket(addressFamily, SocketType.Stream, ProtocolType.Tcp);
|
||||||
@@ -137,6 +139,8 @@ namespace MQTTnet.Implementations
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
_networkStream?.Dispose();
|
||||||
|
|
||||||
// Workaround for: workaround for https://github.com/dotnet/corefx/issues/24430
|
// Workaround for: workaround for https://github.com/dotnet/corefx/issues/24430
|
||||||
using (cancellationToken.Register(() => _socket.Dispose()))
|
using (cancellationToken.Register(() => _socket.Dispose()))
|
||||||
{
|
{
|
||||||
@@ -148,6 +152,8 @@ namespace MQTTnet.Implementations
|
|||||||
await _socket.ConnectAsync(host, port).ConfigureAwait(false);
|
await _socket.ConnectAsync(host, port).ConfigureAwait(false);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_networkStream = new NetworkStream(_socket, true);
|
||||||
}
|
}
|
||||||
catch (ObjectDisposedException)
|
catch (ObjectDisposedException)
|
||||||
{
|
{
|
||||||
@@ -190,11 +196,12 @@ namespace MQTTnet.Implementations
|
|||||||
|
|
||||||
public NetworkStream GetStream()
|
public NetworkStream GetStream()
|
||||||
{
|
{
|
||||||
return new NetworkStream(_socket, true);
|
return _networkStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
_networkStream?.Dispose();
|
||||||
_socket?.Dispose();
|
_socket?.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ namespace MQTTnet.Tests
|
|||||||
var clientSocket = new CrossPlatformSocket(AddressFamily.InterNetwork);
|
var clientSocket = new CrossPlatformSocket(AddressFamily.InterNetwork);
|
||||||
await clientSocket.ConnectAsync("localhost", 50001, CancellationToken.None);
|
await clientSocket.ConnectAsync("localhost", 50001, CancellationToken.None);
|
||||||
|
|
||||||
await Task.Delay(100, ct.Token);
|
|
||||||
|
|
||||||
var tcpChannel = new MqttTcpChannel(clientSocket.GetStream(), "test", null);
|
var tcpChannel = new MqttTcpChannel(clientSocket.GetStream(), "test", null);
|
||||||
|
|
||||||
|
await Task.Delay(100, ct.Token);
|
||||||
|
|
||||||
var buffer = new byte[1];
|
var buffer = new byte[1];
|
||||||
await tcpChannel.ReadAsync(buffer, 0, 1, ct.Token);
|
await tcpChannel.ReadAsync(buffer, 0, 1, ct.Token);
|
||||||
|
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ namespace MQTTnet.Tests
|
|||||||
await c1.PublishAsync(message);
|
await c1.PublishAsync(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
await Task.Delay(500);
|
await Task.Delay(3000);
|
||||||
|
|
||||||
Assert.AreEqual(2000, receivedMessagesCount);
|
Assert.AreEqual(2000, receivedMessagesCount);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user