mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-19 19:13:11 +08:00
Merge pull request #555 from BennyM/develop
When no handlers are configured the client should not blow up
This commit is contained in:
@@ -101,7 +101,11 @@ namespace MQTTnet.Client
|
|||||||
_logger.Info("Connected.");
|
_logger.Info("Connected.");
|
||||||
|
|
||||||
Connected?.Invoke(this, new MqttClientConnectedEventArgs(authenticateResult));
|
Connected?.Invoke(this, new MqttClientConnectedEventArgs(authenticateResult));
|
||||||
await ConnectedHandler?.HandleConnectedAsync(new MqttClientConnectedEventArgs(authenticateResult));
|
if(ConnectedHandler != null)
|
||||||
|
{
|
||||||
|
await ConnectedHandler.HandleConnectedAsync(new MqttClientConnectedEventArgs(authenticateResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return authenticateResult;
|
return authenticateResult;
|
||||||
}
|
}
|
||||||
@@ -265,7 +269,10 @@ namespace MQTTnet.Client
|
|||||||
|
|
||||||
_logger.Info("Disconnected.");
|
_logger.Info("Disconnected.");
|
||||||
Disconnected?.Invoke(this, new MqttClientDisconnectedEventArgs(clientWasConnected, exception));
|
Disconnected?.Invoke(this, new MqttClientDisconnectedEventArgs(clientWasConnected, exception));
|
||||||
await DisconnectedHandler?.HandleDisconnectedAsync(new MqttClientDisconnectedEventArgs(clientWasConnected, exception));
|
if(DisconnectedHandler != null)
|
||||||
|
{
|
||||||
|
await DisconnectedHandler.HandleDisconnectedAsync(new MqttClientDisconnectedEventArgs(clientWasConnected, exception));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ namespace MQTTnet.Tests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
client2.UseReceivedApplicationMessageHandler((Action<MqttApplicationMessageHandlerContext>) Handler2);
|
client2.UseReceivedApplicationMessageHandler((Action<MqttApplicationMessageHandlerContext>)Handler2);
|
||||||
|
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ namespace MQTTnet.Tests
|
|||||||
|
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
|
|
||||||
Assert.AreEqual("reply/request/a,reply/request/b,reply/request/c", string.Join("," , replies));
|
Assert.AreEqual("reply/request/a,reply/request/b,reply/request/c", string.Join(",", replies));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,5 +266,33 @@ namespace MQTTnet.Tests
|
|||||||
Assert.AreEqual(2, retries);
|
Assert.AreEqual(2, retries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public async Task NoConnectedHandler_Connect_DoesNotThrowException()
|
||||||
|
{
|
||||||
|
using (var testEnvironment = new TestEnvironment())
|
||||||
|
{
|
||||||
|
await testEnvironment.StartServerAsync();
|
||||||
|
|
||||||
|
var client = await testEnvironment.ConnectClientAsync();
|
||||||
|
|
||||||
|
Assert.IsTrue(client.IsConnected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public async Task NoDisconnectedHandler_Disconnect_DoesNotThrowException()
|
||||||
|
{
|
||||||
|
using (var testEnvironment = new TestEnvironment())
|
||||||
|
{
|
||||||
|
await testEnvironment.StartServerAsync();
|
||||||
|
var client = await testEnvironment.ConnectClientAsync();
|
||||||
|
Assert.IsTrue(client.IsConnected);
|
||||||
|
|
||||||
|
await client.DisconnectAsync();
|
||||||
|
|
||||||
|
Assert.IsFalse(client.IsConnected);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user