Fix wrong retain flag when distributing messages.

This commit is contained in:
Christian Kratky
2018-11-28 21:35:50 +01:00
parent 83eca982e9
commit ccc275902f
8 changed files with 77 additions and 15 deletions
+11 -3
View File
@@ -430,7 +430,7 @@ namespace MQTTnet.Core.Tests
var serverAdapter = new TestMqttServerAdapter();
var s = new MqttFactory().CreateMqttServer(new[] { serverAdapter }, new MqttNetLogger());
var receivedMessagesCount = 0;
var receivedMessages = new List<MqttApplicationMessage>();
try
{
await s.StartAsync(new MqttServerOptions());
@@ -440,7 +440,14 @@ namespace MQTTnet.Core.Tests
await c1.DisconnectAsync();
var c2 = await serverAdapter.ConnectTestClient("c2");
c2.ApplicationMessageReceived += (_, __) => receivedMessagesCount++;
c2.ApplicationMessageReceived += (_, e) =>
{
lock (receivedMessages)
{
receivedMessages.Add(e.ApplicationMessage);
}
};
await c2.SubscribeAsync(new TopicFilterBuilder().WithTopic("retained").Build());
await Task.Delay(500);
@@ -450,7 +457,8 @@ namespace MQTTnet.Core.Tests
await s.StopAsync();
}
Assert.AreEqual(1, receivedMessagesCount);
Assert.AreEqual(1, receivedMessages.Count);
Assert.IsTrue(receivedMessages.First().Retain);
}
[TestMethod]