public Property Returns_Empty_Soap_For_Signals_If_ReplyPattern_Is_Callback_Or_Mode_Is_PullReceive( SignalMessage signal, ReplyPattern pattern, MessagingContextMode mode) { // Arrange var context = new MessagingContext(AS4Message.Create(signal), mode) { ReceivingPMode = new ReceivingProcessingMode { ReplyHandling = { ReplyPattern = pattern } }, SendingPMode = new SendingProcessingMode { Id = "sending-pmode" } }; // Act StepResult result = ExerciseStoreSignalMessageAsync(context).GetAwaiter().GetResult(); // Assert AS4Message actual = result.MessagingContext.AS4Message; AS4Message expected = context.AS4Message; bool isCallback = pattern == ReplyPattern.Callback; bool isResponse = pattern == ReplyPattern.Response; bool isPullReceive = mode == MessagingContextMode.PullReceive; bool isSignal = expected.Equals(actual); return((actual.IsEmpty == (isCallback || isPullReceive)) .Label("Should be an empty SOAP envelope when configured Callback or in PullReceive mode") .Or(isSignal == isResponse) .Label("Should be a SignalMessage when configured Response") .Classify(actual.IsEmpty, "Empty SOAP envelope response") .Classify(isSignal, "SignalMessage response")); }