mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-11-01 03:32:38 +08:00
Add unit tests
This commit is contained in:
@@ -68,7 +68,64 @@ namespace MQTTnet.Core.Tests
|
|||||||
Assert.AreEqual(1, receivedMessagesCount);
|
Assert.AreEqual(1, receivedMessagesCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
private MqttClient ConnectTestClient(string clientId, MqttApplicationMessage willMessage, MqttServer server)
|
[TestMethod]
|
||||||
|
public async Task MqttServer_Unsubscribe()
|
||||||
|
{
|
||||||
|
var s = new MqttServer(new MqttServerOptions(), new List<IMqttServerAdapter> { new TestMqttServerAdapter() });
|
||||||
|
s.Start();
|
||||||
|
|
||||||
|
var c1 = ConnectTestClient("c1", null, s);
|
||||||
|
var c2 = ConnectTestClient("c2", null, s);
|
||||||
|
|
||||||
|
var receivedMessagesCount = 0;
|
||||||
|
c1.ApplicationMessageReceived += (_, __) => receivedMessagesCount++;
|
||||||
|
|
||||||
|
var message = new MqttApplicationMessage("a", new byte[0], MqttQualityOfServiceLevel.AtLeastOnce, false);
|
||||||
|
|
||||||
|
await c2.PublishAsync(message);
|
||||||
|
Assert.AreEqual(0, receivedMessagesCount);
|
||||||
|
|
||||||
|
await c1.SubscribeAsync(new TopicFilter("a", MqttQualityOfServiceLevel.AtLeastOnce));
|
||||||
|
await c2.PublishAsync(message);
|
||||||
|
|
||||||
|
await Task.Delay(500);
|
||||||
|
Assert.AreEqual(1, receivedMessagesCount);
|
||||||
|
|
||||||
|
await c1.Unsubscribe("a");
|
||||||
|
await c2.PublishAsync(message);
|
||||||
|
|
||||||
|
await Task.Delay(500);
|
||||||
|
Assert.AreEqual(1, receivedMessagesCount);
|
||||||
|
|
||||||
|
s.Stop();
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
Assert.AreEqual(1, receivedMessagesCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public async Task MqttServer_Publish()
|
||||||
|
{
|
||||||
|
var s = new MqttServer(new MqttServerOptions(), new List<IMqttServerAdapter> { new TestMqttServerAdapter() });
|
||||||
|
s.Start();
|
||||||
|
|
||||||
|
var c1 = ConnectTestClient("c1", null, s);
|
||||||
|
|
||||||
|
var receivedMessagesCount = 0;
|
||||||
|
c1.ApplicationMessageReceived += (_, __) => receivedMessagesCount++;
|
||||||
|
|
||||||
|
var message = new MqttApplicationMessage("a", new byte[0], MqttQualityOfServiceLevel.AtLeastOnce, false);
|
||||||
|
await c1.SubscribeAsync(new TopicFilter("a", MqttQualityOfServiceLevel.AtLeastOnce));
|
||||||
|
|
||||||
|
s.Publish(message);
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
s.Stop();
|
||||||
|
|
||||||
|
Assert.AreEqual(1, receivedMessagesCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MqttClient ConnectTestClient(string clientId, MqttApplicationMessage willMessage, MqttServer server)
|
||||||
{
|
{
|
||||||
var adapterA = new TestMqttCommunicationAdapter();
|
var adapterA = new TestMqttCommunicationAdapter();
|
||||||
var adapterB = new TestMqttCommunicationAdapter();
|
var adapterB = new TestMqttCommunicationAdapter();
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace MQTTnet.Core.Tests
|
|||||||
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
||||||
};
|
};
|
||||||
|
|
||||||
Assert.IsTrue(sm.IsTopicSubscribed(pp));
|
Assert.IsTrue(sm.IsSubscribed(pp));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@@ -43,7 +43,7 @@ namespace MQTTnet.Core.Tests
|
|||||||
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
||||||
};
|
};
|
||||||
|
|
||||||
Assert.IsFalse(sm.IsTopicSubscribed(pp));
|
Assert.IsFalse(sm.IsSubscribed(pp));
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
@@ -62,13 +62,13 @@ namespace MQTTnet.Core.Tests
|
|||||||
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
QualityOfServiceLevel = MqttQualityOfServiceLevel.AtMostOnce
|
||||||
};
|
};
|
||||||
|
|
||||||
Assert.IsTrue(sm.IsTopicSubscribed(pp));
|
Assert.IsTrue(sm.IsSubscribed(pp));
|
||||||
|
|
||||||
var up = new MqttUnsubscribePacket();
|
var up = new MqttUnsubscribePacket();
|
||||||
up.TopicFilters.Add("A/B/C");
|
up.TopicFilters.Add("A/B/C");
|
||||||
sm.Unsubscribe(up);
|
sm.Unsubscribe(up);
|
||||||
|
|
||||||
Assert.IsFalse(sm.IsTopicSubscribed(pp));
|
Assert.IsFalse(sm.IsSubscribed(pp));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user