public void GetRoutingKey_MultipleKeyAttributesWithSameKey_ExceptionIsThrown() { var message = new MultipleRoutingKeyAttributesMessage { Id = Guid.NewGuid(), One = "1", Two = "2", Three = "3" }; Action act = () => RoutingKeyHelper.GetRoutingKey(message); act.Should().Throw <InvalidOperationException>(); }
public void GetRoutingKey_NoKeyAttribute_NullIsReturned() { var message = new NoRoutingKeyMessage { Id = Guid.NewGuid(), One = "1", Two = "2", Three = "3" }; var key = RoutingKeyHelper.GetRoutingKey(message); key.Should().BeNull(); }
public void GetRoutingKey_SingleKeyMemberMessage_PropertyValueIsReturned() { var message = new RoutingKeyMessage { Id = Guid.NewGuid(), One = "1", Two = "2", Three = "3" }; var key = RoutingKeyHelper.GetRoutingKey(message); key.Should().Be("1"); }
/// <inheritdoc cref="IProducerBehavior.HandleAsync" /> public async Task HandleAsync(ProducerPipelineContext context, ProducerBehaviorHandler next) { Check.NotNull(context, nameof(context)); Check.NotNull(next, nameof(next)); if (context.Envelope.Message != null) { var key = RoutingKeyHelper.GetRoutingKey(context.Envelope.Message); if (key != null) { context.Envelope.Headers.AddOrReplace(RabbitMessageHeaders.RoutingKey, key); context.Envelope.AdditionalLogData["routingKey"] = key; } } await next(context).ConfigureAwait(false); }