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 )); }
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); }