mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-31 19:22:38 +08:00
Add support for reset of connection statistics. Refactor keep alive monitor.
This commit is contained in:
@@ -69,6 +69,10 @@ namespace MQTTnet.Tests.Mockups
|
||||
}, cancellationToken);
|
||||
}
|
||||
|
||||
public void ResetStatistics()
|
||||
{
|
||||
}
|
||||
|
||||
private void EnqueuePacketInternal(MqttBasePacket packet)
|
||||
{
|
||||
if (packet == null) throw new ArgumentNullException(nameof(packet));
|
||||
|
||||
@@ -16,31 +16,43 @@ namespace MQTTnet.Tests
|
||||
[TestMethod]
|
||||
public void KeepAlive_Timeout()
|
||||
{
|
||||
var clientSession = new TestClientSession();
|
||||
var monitor = new MqttClientKeepAliveMonitor(clientSession, new MqttNetLogger().CreateChildLogger());
|
||||
var counter = 0;
|
||||
|
||||
Assert.AreEqual(0, clientSession.StopCalledCount);
|
||||
var monitor = new MqttClientKeepAliveMonitor("", () =>
|
||||
{
|
||||
counter++;
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
new MqttNetLogger().CreateChildLogger());
|
||||
|
||||
Assert.AreEqual(0, counter);
|
||||
|
||||
monitor.Start(1, CancellationToken.None);
|
||||
|
||||
Assert.AreEqual(0, clientSession.StopCalledCount);
|
||||
Assert.AreEqual(0, counter);
|
||||
|
||||
Thread.Sleep(2000); // Internally the keep alive timeout is multiplied with 1.5 as per protocol specification.
|
||||
|
||||
Assert.AreEqual(1, clientSession.StopCalledCount);
|
||||
Assert.AreEqual(1, counter);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void KeepAlive_NoTimeout()
|
||||
{
|
||||
var clientSession = new TestClientSession();
|
||||
var monitor = new MqttClientKeepAliveMonitor(clientSession, new MqttNetLogger().CreateChildLogger());
|
||||
var counter = 0;
|
||||
|
||||
Assert.AreEqual(0, clientSession.StopCalledCount);
|
||||
var monitor = new MqttClientKeepAliveMonitor("", () =>
|
||||
{
|
||||
counter++;
|
||||
return Task.CompletedTask;
|
||||
},
|
||||
new MqttNetLogger().CreateChildLogger());
|
||||
|
||||
Assert.AreEqual(0, counter);
|
||||
|
||||
monitor.Start(1, CancellationToken.None);
|
||||
|
||||
Assert.AreEqual(0, clientSession.StopCalledCount);
|
||||
Assert.AreEqual(0, counter);
|
||||
|
||||
// Simulate traffic.
|
||||
Thread.Sleep(1000); // Internally the keep alive timeout is multiplied with 1.5 as per protocol specification.
|
||||
@@ -49,11 +61,11 @@ namespace MQTTnet.Tests
|
||||
monitor.PacketReceived();
|
||||
Thread.Sleep(1000);
|
||||
|
||||
Assert.AreEqual(0, clientSession.StopCalledCount);
|
||||
Assert.AreEqual(0, counter);
|
||||
|
||||
Thread.Sleep(2000);
|
||||
|
||||
Assert.AreEqual(1, clientSession.StopCalledCount);
|
||||
Assert.AreEqual(1, counter);
|
||||
}
|
||||
|
||||
private class TestClientSession : IMqttClientSession
|
||||
|
||||
Reference in New Issue
Block a user