Exemple #1
0
        private async Task <OutboxEntry> CreateOutboxEntry(object message)
        {
            var payloadDescriptor = _payloadDescriptorFactory.Create(message, new Dictionary <string, object>());

            var messageId = Guid.Parse(payloadDescriptor.MessageId);

            var payloadSerializer = _serializerRegistry.Get(payloadDescriptor.TopicName);

            return(new OutboxEntry(
                       messageId: messageId,
                       topic: payloadDescriptor.TopicName,
                       key: payloadDescriptor.PartitionKey,
                       payload: await payloadSerializer.Serialize(payloadDescriptor),
                       occurredUtc: DateTime.UtcNow
                       ));
        }
Exemple #2
0
        public void should_add_metadata()
        {
            var registry = A.OutgoingMessageRegistry
                           .Register <TestProducer.Message>("foo", "bar", @event => @event.Id)
                           .Build();
            var generator = new MessageIdGeneratorStub(() => "1");
            var sut       = new PayloadDescriptorFactory(registry, generator);

            var message = new TestProducer.Message()
            {
                Id = "myId"
            };

            var headers = new Metadata();

            var result        = sut.Create(message, headers);
            var correlationId = result.MessageHeaders.First(h => string.Equals(h.Key, "correlationId", StringComparison.InvariantCultureIgnoreCase)).Value;
            var causationId   = result.MessageHeaders.First(h => string.Equals(h.Key, "causationId", StringComparison.InvariantCultureIgnoreCase)).Value;

            Assert.Equal("1", correlationId);
            Assert.Equal("1", causationId);
        }