From 2599b3dfdcfa86e6db43100a17557f28fa4de9b7 Mon Sep 17 00:00:00 2001 From: Christian <6939810+chkr1011@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:34:18 +0100 Subject: [PATCH] Update settings for tests project so that it will build on linux (#1860) * Update settings for tests project so that it will build on linux * Improve unit tests and samples * Remove no longer required target frameworks for unit tests * Update ci.yml --- .github/workflows/ci.yml | 2 +- Samples/Client/Client_Subscribe_Samples.cs | 4 +++- Source/MQTTnet.Tests/MQTTnet.Tests.csproj | 3 ++- Source/MQTTnet.Tests/MQTTv5/Client_Tests.cs | 2 +- .../MqttApplicationMessageTest.cs | 19 ++++++++----------- .../Options/MqttClientOptionsBuilder.cs | 4 +++- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a343f03..8aa4c894 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: uses: darenm/Setup-VSTest@v1 - name: Core Tests - run: vstest.console.exe Source\MQTTnet.Tests\bin\Release\net6.0\MQTTnet.Tests.dll + run: vstest.console.exe Source\MQTTnet.Tests\bin\Release\net7.0\MQTTnet.Tests.dll - name: ASP.NET Tests run: vstest.console.exe Source\MQTTnet.AspNetCore.Tests\bin\Release\netcoreapp3.1\MQTTnet.AspNetCore.Tests.dll diff --git a/Samples/Client/Client_Subscribe_Samples.cs b/Samples/Client/Client_Subscribe_Samples.cs index 36e6b61f..0aa30466 100644 --- a/Samples/Client/Client_Subscribe_Samples.cs +++ b/Samples/Client/Client_Subscribe_Samples.cs @@ -184,7 +184,7 @@ public static class Client_Subscribe_Samples * This sample shows how to achieve concurrent processing and not have message AutoAcknowledged * This to have a proper QoS1 (at-least-once) experience for what at least MQTT specification can provide */ - mqttClient.ApplicationMessageReceivedAsync += async ea => + mqttClient.ApplicationMessageReceivedAsync += ea => { ea.AutoAcknowledge = false; @@ -201,6 +201,8 @@ public static class Client_Subscribe_Samples } _ = Task.Run(ProcessAsync, shutdownToken); + + return Task.CompletedTask; }; } diff --git a/Source/MQTTnet.Tests/MQTTnet.Tests.csproj b/Source/MQTTnet.Tests/MQTTnet.Tests.csproj index 36720c6b..c19b803f 100644 --- a/Source/MQTTnet.Tests/MQTTnet.Tests.csproj +++ b/Source/MQTTnet.Tests/MQTTnet.Tests.csproj @@ -1,7 +1,8 @@ - net452;net461;net48;netcoreapp3.1;net6.0;net7.0 + netcoreapp3.1;net7.0 + $(TargetFrameworks);net452;net48 false 7.3 false diff --git a/Source/MQTTnet.Tests/MQTTv5/Client_Tests.cs b/Source/MQTTnet.Tests/MQTTv5/Client_Tests.cs index 29fd74e9..40def6ac 100644 --- a/Source/MQTTnet.Tests/MQTTv5/Client_Tests.cs +++ b/Source/MQTTnet.Tests/MQTTv5/Client_Tests.cs @@ -273,7 +273,7 @@ namespace MQTTnet.Tests.MQTTv5 Assert.AreEqual(applicationMessage.ResponseTopic, receivedMessage.ResponseTopic); Assert.AreEqual(applicationMessage.MessageExpiryInterval, receivedMessage.MessageExpiryInterval); CollectionAssert.AreEqual(applicationMessage.CorrelationData, receivedMessage.CorrelationData); - CollectionAssert.AreEqual(applicationMessage.Payload, receivedMessage.Payload); + CollectionAssert.AreEqual(applicationMessage.PayloadSegment.ToArray(), receivedMessage.PayloadSegment.ToArray()); CollectionAssert.AreEqual(applicationMessage.UserProperties, receivedMessage.UserProperties); } } diff --git a/Source/MQTTnet.Tests/MqttApplicationMessageTest.cs b/Source/MQTTnet.Tests/MqttApplicationMessageTest.cs index 26da8211..2c20f366 100644 --- a/Source/MQTTnet.Tests/MqttApplicationMessageTest.cs +++ b/Source/MQTTnet.Tests/MqttApplicationMessageTest.cs @@ -1,3 +1,5 @@ +#pragma warning disable CS0618 // Type or member is obsolete + using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; @@ -8,7 +10,7 @@ using System.Threading.Tasks; namespace MQTTnet.Tests { [TestClass] - public class MqttApplicationMessageTest + public sealed class MqttApplicationMessageTest { [TestMethod] public void PayloadSegment() @@ -17,32 +19,27 @@ namespace MQTTnet.Tests Assert.AreEqual(0, message.Payload.Length); Assert.AreEqual(0, message.PayloadSegment.Count); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.Payload)); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.PayloadSegment.Array)); + Assert.IsTrue(ReferenceEquals(message.Payload, message.PayloadSegment.Array)); message.Payload = new byte[] { 1, 2 }; Assert.AreEqual(2, message.Payload.Length); Assert.AreEqual(2, message.PayloadSegment.Count); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.Payload)); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.PayloadSegment.Array)); + Assert.IsTrue(ReferenceEquals(message.Payload, message.PayloadSegment.Array)); message.Payload = new byte[] { 1, 2, 3 }; Assert.AreEqual(3, message.Payload.Length); Assert.AreEqual(3, message.PayloadSegment.Count); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.Payload)); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.PayloadSegment.Array)); + Assert.IsTrue(ReferenceEquals(message.Payload, message.PayloadSegment.Array)); message.PayloadSegment = new ArraySegment(new byte[] { 1, 2, 3 }); Assert.AreEqual(3, message.Payload.Length); Assert.AreEqual(3, message.PayloadSegment.Count); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.Payload)); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.PayloadSegment.Array)); + Assert.IsTrue(ReferenceEquals(message.Payload, message.PayloadSegment.Array)); message.PayloadSegment = new ArraySegment(new byte[] { 1, 2, 3 }, 1, 1); Assert.AreEqual(1, message.Payload.Length); Assert.AreEqual(1, message.PayloadSegment.Count); - Assert.IsTrue(object.ReferenceEquals(message.Payload, message.Payload)); - Assert.IsFalse(object.ReferenceEquals(message.Payload, message.PayloadSegment.Array)); + Assert.IsFalse(ReferenceEquals(message.Payload, message.PayloadSegment.Array)); } } } diff --git a/Source/MQTTnet/Client/Options/MqttClientOptionsBuilder.cs b/Source/MQTTnet/Client/Options/MqttClientOptionsBuilder.cs index 65d4f6d3..2cc03a5f 100644 --- a/Source/MQTTnet/Client/Options/MqttClientOptionsBuilder.cs +++ b/Source/MQTTnet/Client/Options/MqttClientOptionsBuilder.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#pragma warning disable CS0612 // Type or member is obsolete + using System; using System.Collections.Generic; using System.Linq; @@ -37,7 +39,7 @@ namespace MQTTnet.Client // on the order of called methods from the builder). // The builder prefers the explicitly set TLS options! var tlsOptions = _tlsOptions ?? _tcpOptions?.TlsOptions; - + if (_tlsParameters != null) { if (_tlsParameters?.UseTls == true)