/// <inheritdoc /> public Task Publish <TMessage>(TMessage message, VentureOutgoingMessageHandlingContext context) where TMessage : class { if (message == null) { throw new ArgumentNullException(nameof(message)); } if (context == null) { throw new ArgumentNullException(nameof(context)); } return(_messageRouter.RouteEgressMessage( message, context.CorrelationId, context.CausationId, context.MessageId ?? Guid.NewGuid().ToString("N"))); }
public void when_created_with_all_arguments_specified_it_should_initialize_instance_with_their_values() { var message = new object(); var generatedOnUtc = DateTimeOffset.UtcNow; var correlationId = _stringCreator.Get(length: 10); var causationId = _stringCreator.Get(length: 10); var messageId = _stringCreator.Get(length: 10); var context = new VentureOutgoingMessageHandlingContext( message, generatedOnUtc, correlationId, causationId, messageId); context.Message.Should().BeSameAs(message); context.CorrelationId.Should().BeSameAs(correlationId); context.CausationId.Should().BeSameAs(causationId); context.MessageId.Should().BeSameAs(messageId); context.ProducedOnUtc.Should().Be(generatedOnUtc); }