Fix merge conflicts

This commit is contained in:
Christian
2022-11-13 18:41:28 +01:00
parent 2090b08547
commit 3937aa76e3
8 changed files with 48 additions and 40 deletions
@@ -39,16 +39,19 @@ namespace MQTTnet.Extensions.ManagedClient
return managedMqttClient.EnqueueAsync(applicationMessage);
}
public static Task StopAsync(this IManagedMqttClient managedMqttClient, CancellationToken cancellationToken = default)
public static Task StopAsync(this IManagedMqttClient managedMqttClient, bool isClean = true, CancellationToken cancellationToken = default)
{
if (managedMqttClient == null)
{
throw new ArgumentNullException(nameof(managedMqttClient));
}
return managedMqttClient.StopAsync(new MqttClientDisconnectOptions(), cancellationToken);
return managedMqttClient.StopAsync(new MqttClientDisconnectOptions
{
IsClean = isClean
}, cancellationToken);
}
public static Task SubscribeAsync(this IManagedMqttClient managedMqttClient, MqttTopicFilter topicFilter)
{
if (managedMqttClient == null)
@@ -7,7 +7,6 @@ using System.Threading;
using System.Threading.Tasks;
using MQTTnet.Client;
using MQTTnet.Diagnostics;
using MQTTnet.Implementations;
using MQTTnet.Internal;
namespace MQTTnet.Extensions.ManagedClient
@@ -145,7 +144,7 @@ namespace MQTTnet.Extensions.ManagedClient
_workSignal.Set();
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
}
public async Task StopAsync(MqttClientDisconnectOptions options, CancellationToken cancellationToken = default)
@@ -183,7 +182,7 @@ namespace MQTTnet.Extensions.ManagedClient
_subscriptionsManager.Subscribe(options);
_workSignal.Set();
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
}
public Task UnsubscribeAsync(MqttClientUnsubscribeOptions options)
@@ -193,7 +192,7 @@ namespace MQTTnet.Extensions.ManagedClient
_subscriptionsManager.Unsubscribe(options);
_workSignal.Set();
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
}
protected override void Dispose(bool disposing)
@@ -208,7 +207,7 @@ namespace MQTTnet.Extensions.ManagedClient
Task OnInternalClientDisconnected(MqttClientDisconnectedEventArgs eventArgs)
{
_workSignal.Set();
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
}
async Task UpdateConnectionStatus(MaintainConnectionResult maintainConnectionResult)
@@ -9,10 +9,10 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Client;
using MQTTnet.Diagnostics;
using MQTTnet.Extensions.ManagedClient;
using MQTTnet.Formatter;
using MQTTnet.Internal;
using MQTTnet.Protocol;
using MQTTnet.Server;
using MQTTnet.Tests.Mockups;
@@ -86,11 +86,9 @@ namespace MQTTnet.Tests.ManagedMqttClient
using (var testEnvironment = CreateTestEnvironment())
{
await testEnvironment.StartServer();
var managedClient = await testEnvironment.StartManagedClient();
await LongTestDelay();
var managedClient = testEnvironment.Factory.CreateManagedMqttClient(mqttClient);
var managedClient = testEnvironment.Factory.CreateManagedMqttClient(testEnvironment.CreateClient());
ConnectingFailedEventArgs connectingFailedEventArgs = null;
managedClient.ConnectingFailedAsync += args =>
@@ -314,7 +312,6 @@ namespace MQTTnet.Tests.ManagedMqttClient
await server.InjectApplicationMessage(testEnvironment.Factory.CreateApplicationMessageBuilder().WithTopic("topic").WithPayload("payload").WithRetainFlag().Build());
// Now use the managed client and check if subscriptions get cleared properly.
var managedClient = testEnvironment.CreateManagedMqttClient();
var receivedManagedMessages = new List<MqttApplicationMessage>();
var managedClient = testEnvironment.Factory.CreateManagedMqttClient(testEnvironment.CreateClient());
@@ -453,7 +450,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.ConnectedAsync += e =>
{
connected.TrySetResult(true);
promise.TrySetResult(true);
return CompletedTask.Instance;
};
@@ -7,7 +7,7 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Extensions.ManagedClient;
using MQTTnet.Implementations;
using MQTTnet.Internal;
namespace MQTTnet.Tests.ManagedMqttClient
{
@@ -27,7 +27,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.ConnectedAsync += e =>
{
eventFired = true;
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.StartAsync(testEnvironment.CreateDefaultManagedMqttClientOptions());
@@ -51,7 +51,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.ConnectingFailedAsync += args =>
{
connectingFailedEventArgs = args;
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.StartAsync(
@@ -82,7 +82,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.DisconnectedAsync += e =>
{
eventFired = true;
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.StartAsync(testEnvironment.CreateDefaultManagedMqttClientOptions());
@@ -110,7 +110,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.ApplicationMessageEnqueueingAsync += e =>
{
eventFired = true;
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.EnqueueAsync("A");
@@ -134,7 +134,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.SubscribeProcessedAsync += e =>
{
eventFired = e.Options.TopicFilters[0].Topic == "A";
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.StartAsync(testEnvironment.CreateDefaultManagedMqttClientOptions());
@@ -160,7 +160,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.UnsubscribeProcessedAsync += e =>
{
eventFired = e.Options.TopicFilters[0] == "A";
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.StartAsync(testEnvironment.CreateDefaultManagedMqttClientOptions());
@@ -8,6 +8,7 @@ using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Extensions.ManagedClient;
using MQTTnet.Implementations;
using MQTTnet.Internal;
using MQTTnet.Server;
namespace MQTTnet.Tests.ManagedMqttClient
@@ -93,7 +94,7 @@ namespace MQTTnet.Tests.ManagedMqttClient
managedClient.ApplicationMessageReceivedAsync += e =>
{
applicationMessages.Add(e.ApplicationMessage);
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
};
await managedClient.SubscribeAsync("B");
@@ -452,7 +452,7 @@ namespace MQTTnet.Tests.Mockups
ServerReceivedApplicationMessages.Add(arg.ApplicationMessage);
}
return PlatformAbstractionLayer.CompletedTask;
return CompletedTask.Instance;
}
}
}
@@ -6,6 +6,11 @@ namespace MQTTnet.Client
{
public sealed class MqttClientDisconnectOptions
{
/// <summary>
/// Gets or sets whether this disconnect is a clean disconnect.
/// </summary>
public bool IsClean { get; set; }
/// <summary>
/// Gets or sets the reason code.
/// Hint: MQTT 5 feature only.
+20 -17
View File
@@ -14,6 +14,19 @@ namespace MQTTnet.Server
public static class MqttServerExtensions
{
public static Task InjectApplicationMessage(this MqttServer server, MqttApplicationMessage applicationMessage)
{
if (server == null)
{
throw new ArgumentNullException(nameof(server));
}
return server.InjectApplicationMessage(
new InjectedMqttApplicationMessage(applicationMessage)
{
SenderClientId = string.Empty
});
}
public static Task InjectApplicationMessage(
this MqttServer server,
string topic,
@@ -26,15 +39,6 @@ namespace MQTTnet.Server
throw new ArgumentNullException(nameof(server));
}
if (applicationMessage == null)
{
throw new ArgumentNullException(nameof(applicationMessage));
}
return server.InjectApplicationMessage(new InjectedMqttApplicationMessage(applicationMessage)
{
SenderClientId = string.Empty
});
if (topic == null)
{
throw new ArgumentNullException(nameof(topic));
@@ -47,14 +51,13 @@ namespace MQTTnet.Server
}
return server.InjectApplicationMessage(
new InjectedMqttApplicationMessage(
new MqttApplicationMessage
{
Topic = topic,
Payload = payloadBuffer,
QualityOfServiceLevel = qualityOfServiceLevel,
Retain = retain
}));
new MqttApplicationMessage
{
Topic = topic,
Payload = payloadBuffer,
QualityOfServiceLevel = qualityOfServiceLevel,
Retain = retain
});
}
public static Task SubscribeAsync(this MqttServer server, string clientId, params MqttTopicFilter[] topicFilters)