public IncomingPhysicalMessageContextFake(GatewayIncomingBehavior.ReturnState state = null, Dictionary <string, string> headers = null)
        {
            var messageHeaders = headers ?? new Dictionary <string, string>();

            Message = new IncomingMessage(Guid.NewGuid().ToString(), messageHeaders, new byte[0]);

            Extensions = new ContextBag();
            if (state != null)
            {
                Extensions.Set(state);
            }
        }
        public async Task Should_set_correct_httpTo_for_legacy_response_message()
        {
            var returnState = new GatewayIncomingBehavior.ReturnState
            {
                HttpFrom = originatingSite,
            };

            var context = new OutgoingPhysicalMessageContextFake(returnState);

            var behavior = new GatewayOutgoingBehavior();
            await behavior.Invoke(context, () => Task.FromResult(0));


            Assert.AreEqual(originatingSite, context.Headers[Headers.HttpTo]);
        }
        public OutgoingPhysicalMessageContextFake(GatewayIncomingBehavior.ReturnState state = null, Dictionary <string, string> headers = null)
        {
            Headers = headers ?? new Dictionary <string, string>();
            if (headers == null)
            {
                Headers = new Dictionary <string, string>
                {
                    [NServiceBus.Headers.CorrelationId] = Guid.NewGuid().ToString()
                };
            }

            Extensions = new ContextBag();
            if (state != null)
            {
                Extensions.Set(state);
            }
        }
Пример #4
0
        public async Task Should_store_returninfo_for_messages_with_originatingsite()
        {
            var headers = new Dictionary <string, string>
            {
                [Headers.OriginatingSite]   = originatingSite,
                [Headers.ReplyToAddress]    = addressOfOriginatingEndpoint,
                [GatewayHeaders.LegacyMode] = "false"
            };

            var state   = new GatewayIncomingBehavior.ReturnState();
            var context = new IncomingPhysicalMessageContextFake(state, headers);

            await new GatewayIncomingBehavior().Invoke(context, () => Task.FromResult(0));

            Assert.AreEqual(originatingSite, state.OriginatingSite);
            Assert.AreEqual(addressOfOriginatingEndpoint, state.ReplyToAddress);
            Assert.AreEqual(false, state.LegacyMode);
        }
        public async Task Should_set_correct_headers_for_response_messages()
        {
            var returnState = new GatewayIncomingBehavior.ReturnState
            {
                ReplyToAddress  = addressOfOriginatingEndpoint,
                OriginatingSite = originatingSite,
                LegacyMode      = false
            };

            var context = new OutgoingPhysicalMessageContextFake(returnState);

            var behavior = new GatewayOutgoingBehavior();
            await behavior.Invoke(context, () => Task.FromResult(0));


            Assert.AreEqual(originatingSite, context.Headers[Headers.OriginatingSite]);
            Assert.AreEqual(addressOfOriginatingEndpoint, context.Headers[Headers.RouteTo]);
            Assert.AreEqual("False", context.Headers[GatewayHeaders.LegacyMode]);
        }
        public async Task Should_not_override_existing_routeto_for_response_messages()
        {
            const string existingRouteTo = "existing";
            var          returnState     = new GatewayIncomingBehavior.ReturnState
            {
                ReplyToAddress  = addressOfOriginatingEndpoint,
                OriginatingSite = originatingSite,
                LegacyMode      = false
            };

            var headers = new Dictionary <string, string>
            {
                [Headers.RouteTo]       = existingRouteTo,
                [Headers.CorrelationId] = Guid.NewGuid().ToString()
            };

            var context = new OutgoingPhysicalMessageContextFake(returnState, headers);

            var behavior = new GatewayOutgoingBehavior();
            await behavior.Invoke(context, () => Task.FromResult(0));


            Assert.AreEqual(existingRouteTo, context.Headers[Headers.RouteTo]);
        }