fixed tests

This commit is contained in:
JanEggers
2018-04-05 15:55:08 +02:00
parent 7de3d79d09
commit 7154a7b3dc
2 changed files with 46 additions and 11 deletions
@@ -0,0 +1,38 @@
using MQTTnet.Client;
using MQTTnet.Server;
using System;
using System.Threading.Tasks;
namespace MQTTnet.Core.Tests
{
public static class TestServerExtensions
{
/// <summary>
/// publishes a message with a client and waits in the server until a message with the same topic is received
/// </summary>
/// <returns></returns>
public static async Task PublishAndWaitForAsync(this IMqttClient client, IMqttServer server, MqttApplicationMessage message)
{
var tcs = new TaskCompletionSource<object>();
EventHandler<MqttApplicationMessageReceivedEventArgs> handler = (sender, args) =>
{
if (args.ApplicationMessage.Topic == message.Topic)
{
tcs.SetResult(true);
}
};
server.ApplicationMessageReceived += handler;
try
{
await client.PublishAsync(message);
await tcs.Task;
}
finally
{
server.ApplicationMessageReceived -= handler;
}
}
}
}