Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 public EnvelopeCatchingHandler(EnvelopeReceiver receiver)
 {
     _receiver = receiver;
 }