예제 #1
0
        public async Task Can_forward_headers()
        {
            var spy = new OutboxEntryRepositorySpy();

            var sut = A.OutboxQueue
                      .With(
                A.OutgoingMessageRegistry
                .Register <Message>("foo", "bar", @event => "baz")
                .Build()
                )
                      .With(spy)
                      .Build();

            var metadata = new Metadata()
            {
                MessageId     = "183388b5-a8e9-4cb4-b553-6699632461c7",
                CausationId   = "183388b5-a8e9-4cb4-b553-6699632461c7",
                CorrelationId = "183388b5-a8e9-4cb4-b553-6699632461c7"
            };

            await sut.Enqueue(new[] { new Message() }, metadata);

            var expected = @"{
                            ""messageId"":""183388b5-a8e9-4cb4-b553-6699632461c7"",
                            ""type"":""bar"",
                            ""causationId"":""183388b5-a8e9-4cb4-b553-6699632461c7"",
                            ""correlationId"":""183388b5-a8e9-4cb4-b553-6699632461c7"",
                            ""data"":{
                                }
                            }";


            AssertJson.Equal(expected, spy.OutboxEntries[0].Payload);
        }
예제 #2
0
        public async Task Can_delegate_persistence_for_outgoing_message()
        {
            var spy = new OutboxEntryRepositorySpy();

            var sut = A.OutboxQueue
                      .With(
                A.OutgoingMessageRegistry
                .Register <Message>("foo", "bar", @event => "baz")
                .Build()
                )
                      .With(spy)
                      .Build();

            await sut.Enqueue(new[] { new Message() });

            Assert.NotEmpty(spy.OutboxEntries);
        }