From d122de8206f48fbc931dca6cd0fe9745f785b7a2 Mon Sep 17 00:00:00 2001 From: WilliamBZA Date: Tue, 18 May 2021 19:59:17 +0200 Subject: [PATCH] Backport of dotnet5 test targets (#6063) * Update test targets for net5 * Revert editor config changes * Add 452 exclusions * Fix approval file * Fix typo --- .../NServiceBus.AcceptanceTesting.csproj | 3 +- ...lt.Should_preserve_order.net5.approved.txt | 66 +++++++++++++++++++ .../NServiceBus.AcceptanceTests.csproj | 3 +- ...en_registering_additional_deserializers.cs | 5 +- .../When_registering_custom_serializer.cs | 6 +- ...registering_deserializers_with_settings.cs | 5 +- .../NServiceBus.ContainerTests.csproj | 5 +- .../NServiceBus.Core.Analyzer.Tests.csproj | 3 +- ...reateCachedExecutionPlan.net5.approved.txt | 6 ++ .../ArgumentExceptionTests.cs | 5 +- .../When_scanning_top_level_only.cs | 2 +- ...us_message_mutator_to_incoming_messages.cs | 6 +- ...abus_message_mutator_to_null_properties.cs | 7 +- .../DataBus/XmlDatabusSerializer.cs | 20 ++++++ .../DocumentationTests.cs | 4 ++ .../NServiceBus.Core.Tests.csproj | 3 +- .../Pipeline/PipelineTests.cs | 10 ++- ...lt.Should_preserve_order.net5.approved.txt | 62 +++++++++++++++++ ...ersistence.InMemory.AcceptanceTests.csproj | 3 +- .../NServiceBus.TransportTests.csproj | 3 +- 20 files changed, 201 insertions(+), 26 deletions(-) create mode 100644 src/NServiceBus.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt create mode 100644 src/NServiceBus.Core.Tests/ApprovalFiles/PipelineTests.ShouldCreateCachedExecutionPlan.net5.approved.txt create mode 100644 src/NServiceBus.Core.Tests/DataBus/XmlDatabusSerializer.cs create mode 100644 src/NServiceBus.Learning.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt diff --git a/src/NServiceBus.AcceptanceTesting/NServiceBus.AcceptanceTesting.csproj b/src/NServiceBus.AcceptanceTesting/NServiceBus.AcceptanceTesting.csproj index b7fab1be26f..abe3f7fd8c6 100644 --- a/src/NServiceBus.AcceptanceTesting/NServiceBus.AcceptanceTesting.csproj +++ b/src/NServiceBus.AcceptanceTesting/NServiceBus.AcceptanceTesting.csproj @@ -1,10 +1,11 @@  - net452;netstandard2.0 + net5.0;net452;netstandard2.0 true ..\NServiceBus.snk false + 8.0 diff --git a/src/NServiceBus.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt b/src/NServiceBus.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt new file mode 100644 index 00000000000..484bf54f76e --- /dev/null +++ b/src/NServiceBus.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt @@ -0,0 +1,66 @@ +context0 => value(NServiceBus.EnforcePublishBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPublishContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.UnicastPublishConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.SerializeMessageConnector).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.ThrowIfCannotDeferMessageBehavior).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context14 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context14, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceSendBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingSendContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.SendConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.SerializeMessageConnector).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.ThrowIfCannotDeferMessageBehavior).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context14 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context14, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingReplyContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.EnforceReplyBestPracticesBehavior).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingReplyContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.ReplyConnector).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.SerializeMessageConnector).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.ThrowIfCannotDeferMessageBehavior).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context14 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context14, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context15 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context15, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceSubscribeBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.ISubscribeContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.MessageDrivenSubscribeTerminator).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.ISubscribeContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceUnsubscribeBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IUnsubscribeContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.MessageDrivenUnsubscribeTerminator).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IUnsubscribeContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.AcceptanceTesting.Support.CaptureExceptionBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.ITransportReceiveContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.TransportReceiveToPhysicalMessageConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.ProcessingStatisticsBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.MutateIncomingTransportMessageBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.SubscriptionReceiverBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.UnitOfWorkBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.DeserializeMessageConnector).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.MutateIncomingMessageBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.InferredMessageTypeEnricherBehavior).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.LoadHandlersConnector).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IInvokeHandlerContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.InvokeHandlerTerminator).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IInvokeHandlerContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), diff --git a/src/NServiceBus.AcceptanceTests/NServiceBus.AcceptanceTests.csproj b/src/NServiceBus.AcceptanceTests/NServiceBus.AcceptanceTests.csproj index 0bc96a715d6..40c96223eb7 100644 --- a/src/NServiceBus.AcceptanceTests/NServiceBus.AcceptanceTests.csproj +++ b/src/NServiceBus.AcceptanceTests/NServiceBus.AcceptanceTests.csproj @@ -1,7 +1,8 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 + 8.0 true diff --git a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_additional_deserializers.cs b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_additional_deserializers.cs index 258d6dbfa8c..221cc514a61 100644 --- a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_additional_deserializers.cs +++ b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_additional_deserializers.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; using System.IO; - using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks; using AcceptanceTesting; using AcceptanceTesting.Customization; @@ -109,7 +108,7 @@ public MyCustomMessageSerializer(Context context, string valueFromSettings) public void Serialize(object message, Stream stream) { - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); context.SerializeCalled = true; @@ -118,7 +117,7 @@ public void Serialize(object message, Stream stream) public object[] Deserialize(Stream stream, IList messageTypes = null) { - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); stream.Position = 0; var msg = serializer.Deserialize(stream); diff --git a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_custom_serializer.cs b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_custom_serializer.cs index 3b7a7f1176d..45df82aad45 100644 --- a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_custom_serializer.cs +++ b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_custom_serializer.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; using System.IO; - using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks; using AcceptanceTesting; using Configuration.AdvancedExtensibility; @@ -87,13 +86,14 @@ public void Serialize(object message, Stream stream) { context.SerializeCalled = true; - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); + serializer.Serialize(stream, message); } public object[] Deserialize(Stream stream, IList messageTypes = null) { - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); stream.Position = 0; var msg = serializer.Deserialize(stream); diff --git a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_deserializers_with_settings.cs b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_deserializers_with_settings.cs index 0e08b2fb3b8..5a76961ca0c 100644 --- a/src/NServiceBus.AcceptanceTests/Serialization/When_registering_deserializers_with_settings.cs +++ b/src/NServiceBus.AcceptanceTests/Serialization/When_registering_deserializers_with_settings.cs @@ -3,7 +3,6 @@ namespace NServiceBus.AcceptanceTests.Serialization using System; using System.Collections.Generic; using System.IO; - using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks; using AcceptanceTesting; using Configuration.AdvancedExtensibility; @@ -102,7 +101,7 @@ public MyCustomMessageSerializer(string valueFromSettings, Context context) public void Serialize(object message, Stream stream) { - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); context.SerializeCalled = true; context.ValueFromSettingsForMainSerializer = valueFromSettings; @@ -112,7 +111,7 @@ public void Serialize(object message, Stream stream) public object[] Deserialize(Stream stream, IList messageTypes = null) { - var serializer = new BinaryFormatter(); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyRequest)); stream.Position = 0; var msg = serializer.Deserialize(stream); diff --git a/src/NServiceBus.ContainerTests/NServiceBus.ContainerTests.csproj b/src/NServiceBus.ContainerTests/NServiceBus.ContainerTests.csproj index 0373e71f0c8..48b6a77ac47 100644 --- a/src/NServiceBus.ContainerTests/NServiceBus.ContainerTests.csproj +++ b/src/NServiceBus.ContainerTests/NServiceBus.ContainerTests.csproj @@ -1,8 +1,11 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 true + true + ..\Test.snk + 8.0 diff --git a/src/NServiceBus.Core.Analyzer.Tests/NServiceBus.Core.Analyzer.Tests.csproj b/src/NServiceBus.Core.Analyzer.Tests/NServiceBus.Core.Analyzer.Tests.csproj index 6de0be4db2a..1d6323cfe54 100644 --- a/src/NServiceBus.Core.Analyzer.Tests/NServiceBus.Core.Analyzer.Tests.csproj +++ b/src/NServiceBus.Core.Analyzer.Tests/NServiceBus.Core.Analyzer.Tests.csproj @@ -1,9 +1,10 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 $(NoWarn);NU1701 true + 8.0 diff --git a/src/NServiceBus.Core.Tests/ApprovalFiles/PipelineTests.ShouldCreateCachedExecutionPlan.net5.approved.txt b/src/NServiceBus.Core.Tests/ApprovalFiles/PipelineTests.ShouldCreateCachedExecutionPlan.net5.approved.txt new file mode 100644 index 00000000000..21788b2af00 --- /dev/null +++ b/src/NServiceBus.Core.Tests/ApprovalFiles/PipelineTests.ShouldCreateCachedExecutionPlan.net5.approved.txt @@ -0,0 +1,6 @@ +context0 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+StageFork).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Behavior1).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Stage1).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Behavior2).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Stage2).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.Core.Tests.Pipeline.PipelineTests+Terminator).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Int32]])), diff --git a/src/NServiceBus.Core.Tests/ArgumentExceptionTests.cs b/src/NServiceBus.Core.Tests/ArgumentExceptionTests.cs index 3db53d03925..0020d9c49d2 100644 --- a/src/NServiceBus.Core.Tests/ArgumentExceptionTests.cs +++ b/src/NServiceBus.Core.Tests/ArgumentExceptionTests.cs @@ -14,10 +14,13 @@ public class ArgumentExceptionTests public void WriteAllPublicMembersWithNoArgumentChecking() { var stringWriter = new StringWriter(); +#if NET452 var codeBase = typeof(Endpoint).Assembly.CodeBase; var uri = new UriBuilder(codeBase); var path = Uri.UnescapeDataString(uri.Path); - +#else + var path = AppContext.BaseDirectory + Path.GetFileName(typeof(Endpoint).Assembly.Location); +#endif var readerParameters = new ReaderParameters { ReadSymbols = true diff --git a/src/NServiceBus.Core.Tests/AssemblyScanner/When_scanning_top_level_only.cs b/src/NServiceBus.Core.Tests/AssemblyScanner/When_scanning_top_level_only.cs index eb8a2ba04a8..1be45fd5575 100644 --- a/src/NServiceBus.Core.Tests/AssemblyScanner/When_scanning_top_level_only.cs +++ b/src/NServiceBus.Core.Tests/AssemblyScanner/When_scanning_top_level_only.cs @@ -43,7 +43,7 @@ public void Should_not_find_assembly_in_sub_directory() var allEncounteredFileNames = results.Assemblies .Where(x => !x.IsDynamic) - .Select(a => a.CodeBase) + .Select(a => a.Location) .Concat(results.SkippedFiles.Select(s => s.FilePath)) .ToList(); diff --git a/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_incoming_messages.cs b/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_incoming_messages.cs index 99679d83871..45581d19eb2 100644 --- a/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_incoming_messages.cs +++ b/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_incoming_messages.cs @@ -3,7 +3,6 @@ namespace NServiceBus.Core.Tests.DataBus using System; using System.Collections.Generic; using System.IO; - using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks; using NServiceBus.DataBus; using NServiceBus.Pipeline; @@ -28,11 +27,12 @@ public async Task Incoming_databus_properties_should_be_hydrated() }); var fakeDatabus = new FakeDataBus(); - var receiveBehavior = new DataBusReceiveBehavior(fakeDatabus, new DefaultDataBusSerializer(), new Conventions()); + var receiveBehavior = new DataBusReceiveBehavior(fakeDatabus, new XmlDataBusSerializer(), new Conventions()); using (var stream = new MemoryStream()) { - new BinaryFormatter().Serialize(stream, "test"); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(string)); + serializer.Serialize(stream, "test"); stream.Position = 0; fakeDatabus.StreamsToReturn[databusKey] = stream; diff --git a/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_null_properties.cs b/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_null_properties.cs index a46d71cbbcc..95cb76ad458 100644 --- a/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_null_properties.cs +++ b/src/NServiceBus.Core.Tests/DataBus/When_applying_the_databus_message_mutator_to_null_properties.cs @@ -1,7 +1,6 @@ namespace NServiceBus.Core.Tests.DataBus { using System.IO; - using System.Runtime.Serialization.Formatters.Binary; using System.Threading.Tasks; using NServiceBus.Pipeline; using NUnit.Framework; @@ -18,16 +17,16 @@ public async Task Should_not_blow_up() Message = new OutgoingLogicalMessage(typeof(MessageWithNullDataBusProperty), new MessageWithNullDataBusProperty()) }; - var sendBehavior = new DataBusSendBehavior(null, new DefaultDataBusSerializer(), new Conventions()); + var sendBehavior = new DataBusSendBehavior(null, new XmlDataBusSerializer(), new Conventions()); using (var stream = new MemoryStream()) { - new BinaryFormatter().Serialize(stream, "test"); + var serializer = new System.Xml.Serialization.XmlSerializer(typeof(string)); + serializer.Serialize(stream, "test"); stream.Position = 0; await sendBehavior.Invoke(context, ctx => TaskEx.CompletedTask); } } - } } \ No newline at end of file diff --git a/src/NServiceBus.Core.Tests/DataBus/XmlDatabusSerializer.cs b/src/NServiceBus.Core.Tests/DataBus/XmlDatabusSerializer.cs new file mode 100644 index 00000000000..fb0ca760fee --- /dev/null +++ b/src/NServiceBus.Core.Tests/DataBus/XmlDatabusSerializer.cs @@ -0,0 +1,20 @@ +namespace NServiceBus +{ + using System.IO; + using DataBus; + + class XmlDataBusSerializer : IDataBusSerializer + { + public void Serialize(object databusProperty, Stream stream) + { + formatter.Serialize(stream, databusProperty); + } + + public object Deserialize(Stream stream) + { + return formatter.Deserialize(stream); + } + + static System.Xml.Serialization.XmlSerializer formatter = new System.Xml.Serialization.XmlSerializer(typeof(T)); + } +} \ No newline at end of file diff --git a/src/NServiceBus.Core.Tests/DocumentationTests.cs b/src/NServiceBus.Core.Tests/DocumentationTests.cs index 75d23a4aafb..ad5ac2b53fb 100644 --- a/src/NServiceBus.Core.Tests/DocumentationTests.cs +++ b/src/NServiceBus.Core.Tests/DocumentationTests.cs @@ -19,9 +19,13 @@ public class DocumentationTests public void EnsureNoDocumentationIsEmpty() { var assembly = typeof(Endpoint).Assembly; +#if NET452 var codeBase = assembly.CodeBase; var uri = new UriBuilder(codeBase); var path = Uri.UnescapeDataString(uri.Path); +#else + var path = AppContext.BaseDirectory + Path.GetFileName(assembly.Location); +#endif var assemblyMembers = DocReader.Read(assembly, Path.ChangeExtension(path, "xml")); var list = GetListOfMissingDocs(assemblyMembers).ToList(); diff --git a/src/NServiceBus.Core.Tests/NServiceBus.Core.Tests.csproj b/src/NServiceBus.Core.Tests/NServiceBus.Core.Tests.csproj index d223eaa6873..6e47b377d23 100644 --- a/src/NServiceBus.Core.Tests/NServiceBus.Core.Tests.csproj +++ b/src/NServiceBus.Core.Tests/NServiceBus.Core.Tests.csproj @@ -1,10 +1,11 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 true ..\Test.snk true + 8.0 diff --git a/src/NServiceBus.Core.Tests/Pipeline/PipelineTests.cs b/src/NServiceBus.Core.Tests/Pipeline/PipelineTests.cs index 4d8bf30649c..8baef4def84 100644 --- a/src/NServiceBus.Core.Tests/Pipeline/PipelineTests.cs +++ b/src/NServiceBus.Core.Tests/Pipeline/PipelineTests.cs @@ -93,7 +93,15 @@ public void ShouldCreateCachedExecutionPlan() var expressions = new List(); behaviors.CreatePipelineExecutionExpression(expressions); - Approver.Verify(expressions.PrettyPrint()); +#if NET5_0_OR_GREATER + // System.Threading.Tasks.Task has changed to System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult] in .net5 + // This ifdef is to make sure the new type is only validated for .net5 or greater. + var scenario = "net5"; +#else + var scenario = string.Empty; +#endif + + Approver.Verify(expressions.PrettyPrint(), scenario: scenario); } [Test] diff --git a/src/NServiceBus.Learning.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt b/src/NServiceBus.Learning.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt new file mode 100644 index 00000000000..8d9762c9ab5 --- /dev/null +++ b/src/NServiceBus.Learning.AcceptanceTests/ApprovalFiles/When_pipelines_are_built.Should_preserve_order.net5.approved.txt @@ -0,0 +1,62 @@ +context0 => value(NServiceBus.EnforcePublishBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPublishContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.MulticastPublishConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.SerializeMessageConnector).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceSendBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingSendContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.SendConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.SerializeMessageConnector).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IOutgoingReplyContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.EnforceReplyBestPracticesBehavior).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IOutgoingReplyContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.ReplyConnector).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.AttachCausationHeadersBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.AttachCorrelationIdBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.MutateOutgoingMessageBehavior).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.ApplyTimeToBeReceivedBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.ApplyReplyToAddressBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.AddHostInfoHeadersBehavior).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IOutgoingLogicalMessageContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.SerializeMessageConnector).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context10 => value(NServiceBus.MutateOutgoingTransportMessageBehavior).Invoke(context10, value(System.Func`2[NServiceBus.Pipeline.IOutgoingPhysicalMessageContext,System.Threading.Tasks.Task])), + context11 => value(NServiceBus.OutgoingPhysicalToRoutingConnector).Invoke(context11, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context12 => value(NServiceBus.AttachSenderRelatedInfoOnMessageBehavior).Invoke(context12, value(System.Func`2[NServiceBus.Pipeline.IRoutingContext,System.Threading.Tasks.Task])), + context13 => value(NServiceBus.RoutingToDispatchConnector).Invoke(context13, value(System.Func`2[NServiceBus.Pipeline.IDispatchContext,System.Threading.Tasks.Task])), + context14 => value(NServiceBus.ImmediateDispatchTerminator).Invoke(context14, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IDispatchContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceSubscribeBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.ISubscribeContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.NativeSubscribeTerminator).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.ISubscribeContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.EnforceUnsubscribeBestPracticesBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.IUnsubscribeContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.NativeUnsubscribeTerminator).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IUnsubscribeContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), + +context0 => value(NServiceBus.AcceptanceTesting.Support.CaptureExceptionBehavior).Invoke(context0, value(System.Func`2[NServiceBus.Pipeline.ITransportReceiveContext,System.Threading.Tasks.Task])), + context1 => value(NServiceBus.TransportReceiveToPhysicalMessageConnector).Invoke(context1, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context2 => value(NServiceBus.ProcessingStatisticsBehavior).Invoke(context2, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context3 => value(NServiceBus.MutateIncomingTransportMessageBehavior).Invoke(context3, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context4 => value(NServiceBus.UnitOfWorkBehavior).Invoke(context4, value(System.Func`2[NServiceBus.Pipeline.IIncomingPhysicalMessageContext,System.Threading.Tasks.Task])), + context5 => value(NServiceBus.DeserializeMessageConnector).Invoke(context5, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context6 => value(NServiceBus.MutateIncomingMessageBehavior).Invoke(context6, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context7 => value(NServiceBus.InferredMessageTypeEnricherBehavior).Invoke(context7, value(System.Func`2[NServiceBus.Pipeline.IIncomingLogicalMessageContext,System.Threading.Tasks.Task])), + context8 => value(NServiceBus.LoadHandlersConnector).Invoke(context8, value(System.Func`2[NServiceBus.Pipeline.IInvokeHandlerContext,System.Threading.Tasks.Task])), + context9 => value(NServiceBus.InvokeHandlerTerminator).Invoke(context9, value(System.Func`2[NServiceBus.Pipeline.PipelineTerminator`1+ITerminatingContext[NServiceBus.Pipeline.IInvokeHandlerContext],System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]])), diff --git a/src/NServiceBus.Persistence.InMemory.AcceptanceTests/NServiceBus.Persistence.InMemory.AcceptanceTests.csproj b/src/NServiceBus.Persistence.InMemory.AcceptanceTests/NServiceBus.Persistence.InMemory.AcceptanceTests.csproj index 44f2b3ce37b..2783d6f4a23 100644 --- a/src/NServiceBus.Persistence.InMemory.AcceptanceTests/NServiceBus.Persistence.InMemory.AcceptanceTests.csproj +++ b/src/NServiceBus.Persistence.InMemory.AcceptanceTests/NServiceBus.Persistence.InMemory.AcceptanceTests.csproj @@ -1,7 +1,8 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 + 8.0 true diff --git a/src/NServiceBus.TransportTests/NServiceBus.TransportTests.csproj b/src/NServiceBus.TransportTests/NServiceBus.TransportTests.csproj index a1ead9623b2..2475a23bb6a 100644 --- a/src/NServiceBus.TransportTests/NServiceBus.TransportTests.csproj +++ b/src/NServiceBus.TransportTests/NServiceBus.TransportTests.csproj @@ -1,8 +1,9 @@  - net452;netcoreapp3.1 + net5.0;net452;netcoreapp3.1 true + 8.0