private static AS4Message CreateAS4ErrorWithPossibleMultihop( AS4Message received, ErrorResult occurredError) { Error ToError(UserMessage u) { return(Error.CreateFor(IdentifierFactory.Instance.Create(), u, occurredError, received?.IsMultiHopMessage == true)); } IEnumerable <Error> errors = received?.UserMessages.Select(ToError) ?? new Error[0]; AS4Message errorMessage = AS4Message.Create(errors); errorMessage.SigningId = received?.SigningId; return(errorMessage); }
public async Task ErrorMessageForMultihopUserMessageIsMultihop() { // Arrange AS4Message expectedAS4Message = await CreateReceivedAS4Message(CreateMultiHopPMode()); var error = Error.CreateFor($"error-{Guid.NewGuid()}", expectedAS4Message.FirstUserMessage, userMessageSendViaMultiHop: true); // Act XmlDocument document = AS4XmlSerializer.ToSoapEnvelopeDocument(AS4Message.Create(error), CancellationToken.None); // Following elements should be present: // - To element in the wsa namespace // - Action element in the wsa namespace // - UserElement in the multihop namespace. AssertToElement(document); Assert.True(ContainsActionElement(document)); Assert.True(ContainsUserMessageElement(document)); AssertMessagingElement(document); AssertIfSenderAndReceiverAreReversed(expectedAS4Message, document); }