public async Task applies_modifiers_per_channel() { var receiver = new EnvelopeReceiver(); await with(_ => { _.Services.AddSingleton(receiver); _.Handlers.DisableConventionalDiscovery(); _.Handlers.IncludeType <EnvelopeCatchingHandler>(); _.Publish.Message <Message1>().To("loopback://one").ModifyWith <FooModifier>().ModifyWith <BarModifier>(); _.Publish.Message <Message2>().To("loopback://two"); }); await Bus.SendAndWait(new Message1()); await Bus.SendAndWait(new Message2()); var envelopeForChannelOne = receiver.Received.First(x => x.MessageType == typeof(Message1).ToMessageAlias()); var envelopeForChannelTwo = receiver.Received.First(x => x.MessageType == typeof(Message2).ToMessageAlias()); envelopeForChannelOne.Headers["foo"].ShouldBe("yes"); envelopeForChannelOne.Headers["bar"].ShouldBe("yes"); envelopeForChannelTwo.Headers.ContainsKey("foo").ShouldBeFalse(); envelopeForChannelTwo.Headers.ContainsKey("bar").ShouldBeFalse(); }
public EnvelopeCatchingHandler(EnvelopeReceiver receiver) { _receiver = receiver; }