Esempio n. 1
0
        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);
        }