From 0fec860b258032fe443304db4756973a888967da Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Tue, 23 Apr 2019 14:46:02 +0200 Subject: [PATCH] Add UnitTests. --- .../MqttTcpChannel_Tests.cs | 2 +- Tests/MQTTnet.Core.Tests/Server_Tests.cs | 51 ++++++++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/Tests/MQTTnet.Core.Tests/MqttTcpChannel_Tests.cs b/Tests/MQTTnet.Core.Tests/MqttTcpChannel_Tests.cs index f04e7c5e..d2b518b2 100644 --- a/Tests/MQTTnet.Core.Tests/MqttTcpChannel_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/MqttTcpChannel_Tests.cs @@ -39,7 +39,7 @@ namespace MQTTnet.Tests await Task.Delay(100, ct.Token); - var tcpChannel = new MqttTcpChannel(new NetworkStream(clientSocket, true)); + var tcpChannel = new MqttTcpChannel(new NetworkStream(clientSocket, true), "test"); var buffer = new byte[1]; await tcpChannel.ReadAsync(buffer, 0, 1, ct.Token); diff --git a/Tests/MQTTnet.Core.Tests/Server_Tests.cs b/Tests/MQTTnet.Core.Tests/Server_Tests.cs index 5dbde0e6..d0f26c8b 100644 --- a/Tests/MQTTnet.Core.Tests/Server_Tests.cs +++ b/Tests/MQTTnet.Core.Tests/Server_Tests.cs @@ -437,7 +437,7 @@ namespace MQTTnet.Tests await Task.Delay(1000); - var retainedMessages = await server.GetRetainedMessagesAsync(); + var retainedMessages = await server.GetRetainedApplicationMessagesAsync(); Assert.AreEqual(ClientCount, retainedMessages.Count); @@ -566,6 +566,27 @@ namespace MQTTnet.Tests Assert.AreEqual(0, receivedMessagesCount); } } + + [TestMethod] + public async Task Intercept_Application_Message() + { + using (var testEnvironment = new TestEnvironment()) + { + await testEnvironment.StartServerAsync( + new MqttServerOptionsBuilder().WithApplicationMessageInterceptor( + c => { c.ApplicationMessage = new MqttApplicationMessage {Topic = "new_topic" }; })); + + string receivedTopic = null; + var c1 = await testEnvironment.ConnectClientAsync(); + await c1.SubscribeAsync("#"); + c1.UseApplicationMessageReceivedHandler(a => { receivedTopic = a.ApplicationMessage.Topic; }); + + await c1.PublishAsync(new MqttApplicationMessageBuilder().WithTopic("original_topic").Build()); + + await Task.Delay(500); + Assert.AreEqual("new_topic", receivedTopic); + } + } [TestMethod] public async Task Persist_Retained_Message() @@ -586,6 +607,34 @@ namespace MQTTnet.Tests } } + [TestMethod] + public async Task Publish_After_Client_Connects() + { + using (var testEnvironment = new TestEnvironment()) + { + var server = await testEnvironment.StartServerAsync(); + server.UseClientConnectedHandler(async e => + { + await server.PublishAsync("/test/1", "true", MqttQualityOfServiceLevel.ExactlyOnce, false); + }); + + string receivedTopic = null; + + var c1 = await testEnvironment.ConnectClientAsync(); + c1.UseApplicationMessageReceivedHandler(e => { receivedTopic = e.ApplicationMessage.Topic; }); + await c1.SubscribeAsync("#"); + + await testEnvironment.ConnectClientAsync(); + await testEnvironment.ConnectClientAsync(); + await testEnvironment.ConnectClientAsync(); + await testEnvironment.ConnectClientAsync(); + + await Task.Delay(500); + + Assert.AreEqual("/test/1", receivedTopic); + } + } + [TestMethod] public async Task Intercept_Message() {