Add UnitTests.

This commit is contained in:
Christian Kratky
2019-04-23 14:46:02 +02:00
parent 2c927c5995
commit 0fec860b25
2 changed files with 51 additions and 2 deletions
@@ -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);
+50 -1
View File
@@ -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()
{