예제 #1
0
        static SendConnector InitializeBehavior(FakeRouter router = null)
        {
            var metadataRegistry = new MessageMetadataRegistry(new Conventions().IsMessageType);

            metadataRegistry.RegisterMessageTypesFoundIn(new List <Type>
            {
                typeof(MyMessage),
                typeof(MessageWithoutRouting)
            });

            return(new SendConnector(router ?? new FakeRouter()));
        }
예제 #2
0
        public async Task Should_set_messageintent_to_send()
        {
            var physicalRouter = new FakeRouter {
                FixedDestination = new UnicastRoutingStrategy("destination endpoint")
            };

            var behavior = InitializeBehavior(physicalRouter);

            var context = CreateContext();

            await behavior.Invoke(context, ctx => Task.CompletedTask);

            Assert.AreEqual(1, context.Headers.Count);
            Assert.AreEqual(MessageIntentEnum.Send.ToString(), context.Headers[Headers.MessageIntent]);
        }
예제 #3
0
        public async Task Should_use_router_to_route()
        {
            var logicalRouter = new FakeRouter {
                FixedDestination = new UnicastRoutingStrategy("LogicalAddress")
            };

            var behavior = InitializeBehavior(logicalRouter);

            var context = CreateContext();

            UnicastAddressTag addressTag = null;
            await behavior.Invoke(context, c =>
            {
                addressTag = (UnicastAddressTag)c.RoutingStrategies.Single().Apply(new Dictionary <string, string>());
                return(Task.CompletedTask);
            });

            Assert.AreEqual("LogicalAddress", addressTag.Destination);
        }