StopAsync now waits until the managed client is stoped and more typical disposing of internal client

This commit is contained in:
vbBerni
2019-02-16 22:23:45 +01:00
parent de3a39bdc2
commit 2a4eb460da
3 changed files with 86 additions and 15 deletions
@@ -79,5 +79,33 @@ namespace MQTTnet.Tests
Assert.AreEqual(1, receivedMessagesCount);
}
}
[TestMethod]
public async Task Start_Stop()
{
using (var testEnvironment = new TestEnvironment())
{
var factory = new MqttFactory();
var server = await testEnvironment.StartServerAsync();
var managedClient = new ManagedMqttClient(testEnvironment.CreateClient(), new MqttNetLogger().CreateChildLogger());
var clientOptions = new MqttClientOptionsBuilder()
.WithTcpServer("localhost", testEnvironment.ServerPort);
TaskCompletionSource<bool> connected = new TaskCompletionSource<bool>();
managedClient.Connected += (s, e) => { connected.SetResult(true); };
await managedClient.StartAsync(new ManagedMqttClientOptionsBuilder()
.WithClientOptions(clientOptions)
.Build());
await connected.Task;
await managedClient.StopAsync();
Assert.AreEqual(0, (await server.GetClientStatusAsync()).Count);
}
}
}
}
+2 -2
View File
@@ -66,9 +66,9 @@ namespace MQTTnet.Tests
}
finally
{
MqttNetGlobalLogger.LogMessagePublished -= globalLog;
await managedClient.StopAsync();
MqttNetGlobalLogger.LogMessagePublished -= globalLog;
}
Assert.IsFalse(invalidLogIdOccured);