From 21048b51ae673d04e91997bd71cf9d56d9697e10 Mon Sep 17 00:00:00 2001 From: JanEggers Date: Sun, 1 Jul 2018 19:12:18 +0200 Subject: [PATCH] prove there is something wrong --- Tests/MQTTnet.Core.Tests/MqttServerTests.cs | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Tests/MQTTnet.Core.Tests/MqttServerTests.cs b/Tests/MQTTnet.Core.Tests/MqttServerTests.cs index 95bb67da..14f1076a 100644 --- a/Tests/MQTTnet.Core.Tests/MqttServerTests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttServerTests.cs @@ -233,6 +233,32 @@ namespace MQTTnet.Core.Tests await c1.PublishAsync(message); } } + + [TestMethod] + public async Task MqttServer_ShutdownDisconnectsClientsGracefully() + { + var serverAdapter = new MqttTcpServerAdapter(new MqttNetLogger().CreateChildLogger()); + var s = new MqttFactory().CreateMqttServer(new[] { serverAdapter }, new MqttNetLogger()); + + var clientOptions = new MqttClientOptionsBuilder() + .WithTcpServer("localhost") + .Build(); + + bool disconnectCalled = false; + + await s.StartAsync(new MqttServerOptions()); + + var c1 = new MqttFactory().CreateMqttClient(); + c1.Disconnected += (sender, args) => disconnectCalled = true; + + await c1.ConnectAsync(clientOptions); + + await s.StopAsync(); + + await Task.Delay(500); + + Assert.IsTrue(disconnectCalled); + } [TestMethod] public async Task MqttServer_RetainedMessagesFlow()