From f0be3ef0cf9149f6575c3e89977fa5acbeda9424 Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Thu, 6 Jun 2019 20:26:21 +0200 Subject: [PATCH] Add UnitTests. --- Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs | 34 ++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs index deb9682..0fdd238 100644 --- a/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttClient_Tests.cs @@ -20,6 +20,40 @@ namespace MQTTnet.Tests [TestClass] public class Client_Tests { + [TestMethod] + public async Task Send_Reply_In_Message_Handler_For_Same_Client() + { + using (var testEnvironment = new TestEnvironment()) + { + await testEnvironment.StartServerAsync(); + var client = await testEnvironment.ConnectClientAsync(); + + await client.SubscribeAsync("#"); + + var replyReceived = false; + + client.UseApplicationMessageReceivedHandler(c => + { + if (c.ApplicationMessage.Topic == "request") + { +#pragma warning disable 4014 + Task.Run(() => client.PublishAsync("reply", null, MqttQualityOfServiceLevel.AtLeastOnce)); +#pragma warning restore 4014 + } + else + { + replyReceived = true; + } + }); + + await client.PublishAsync("request", null, MqttQualityOfServiceLevel.AtLeastOnce); + + SpinWait.SpinUntil(() => replyReceived, TimeSpan.FromSeconds(10)); + + Assert.IsTrue(replyReceived); + } + } + [TestMethod] public async Task Send_Reply_In_Message_Handler() {