Esempio n. 1
0
        public async Task Only_Unsigned_Signals_Are_PiggyBacked_For_SendingPModes_Where_Signing_Is_Not_Configured()
        {
            // Arrange
            const string url = "http://localhost:8081/msh";
            string       mpc = $"mpc-{Guid.NewGuid()}";

            var user            = new UserMessage($"user-{Guid.NewGuid()}", mpc);
            var unsignedReceipt = new Receipt($"receipt-{Guid.NewGuid()}", user.MessageId);
            var signedReceipt   = new Receipt($"receipt-{Guid.NewGuid()}", user.MessageId);

            InsertUserMessage(user);
            InsertReceipt(unsignedReceipt, Operation.ToBePiggyBacked, url, signed: false);
            InsertReceipt(signedReceipt, Operation.ToBePiggyBacked, url, signed: true);

            var pr  = new PullRequest($"pr-{Guid.NewGuid()}", mpc);
            var ctx = new MessagingContext(AS4Message.Create(pr), MessagingContextMode.PullReceive)
            {
                SendingPMode = new SendingProcessingMode
                {
                    PushConfiguration = new PushConfiguration {
                        Protocol = { Url = url }
                    },
                    Security = { Signing = { IsEnabled = false } }
                }
            };
            var sut = new BundleSignalMessageToPullRequestStep(GetDataStoreContext, _bodyStore);

            // Act
            StepResult result = await sut.ExecuteAsync(ctx);

            // Assert
            Assert.True(result.Succeeded);
            Assert.Collection(
                result.MessagingContext.AS4Message.MessageUnits,
                u => Assert.IsType <PullRequest>(u),
                u => Assert.Equal(unsignedReceipt.MessageId, Assert.IsType <Receipt>(u).MessageId));

            GetDataStoreContext.AssertOutMessage(
                signedReceipt.MessageId,
                m => Assert.Equal(Operation.ToBePiggyBacked, m.Operation));

            GetDataStoreContext.AssertOutMessage(
                unsignedReceipt.MessageId,
                m => Assert.Equal(Operation.Sending, m.Operation));
        }
Esempio n. 2
0
        private StepResult ExerciseBundleWithPullRequest(PullRequest pullRequest, string url)
        {
            var sut = new BundleSignalMessageToPullRequestStep(GetDataStoreContext, _bodyStore);

            var ctx = new MessagingContext(
                AS4Message.Create(pullRequest),
                MessagingContextMode.PullReceive)
            {
                SendingPMode = new SendingProcessingMode
                {
                    PushConfiguration = new PushConfiguration {
                        Protocol = { Url = url }
                    }
                }
            };

            return(sut.ExecuteAsync(ctx)
                   .GetAwaiter()
                   .GetResult());
        }