Esempio n. 1
0
        public void DirectReplyWithDefaultExchange()
        {
            const String replyRoutingKey = "replyRoutingKey";
            var          message         = new OutboundMessage <Bar>(new Bar());

            message.SetReply(new DirectReplyConfiguration(replyRoutingKey));
            var properties = message.BuildBasicProperties(StubResolver <Bar>(null).Object,
                                                          StubDateTimeProvider().Object,
                                                          new Mock <INewId>().Object);

            Assert.Equal("direct:///replyRoutingKey", properties.ReplyTo);
        }
Esempio n. 2
0
        public void FanoutReply()
        {
            const String replyExchangeName = "replyExchangeName";
            var          message           = new OutboundMessage <Bar>(new Bar());

            message.SetReply(new FanoutReplyConfiguration(replyExchangeName));
            var properties = message.BuildBasicProperties(StubResolver <Bar>(null).Object,
                                                          StubDateTimeProvider().Object,
                                                          new Mock <INewId>().Object);

            Assert.Equal("fanout", properties.ReplyToAddress.ExchangeType);
            Assert.Equal(replyExchangeName, properties.ReplyToAddress.ExchangeName);
            Assert.Equal(String.Empty, properties.ReplyToAddress.RoutingKey);
            Assert.Equal("fanout://replyExchangeName/", properties.ReplyTo);
        }
Esempio n. 3
0
        private static void Main(String[] args)
        {
            const String routingKey        = "request_routing_key";
            const String endpointUrl       = "amqp://*****:*****@localhost:5672/";
            const String replyQueueName    = "reply_to_queue";
            const String replyExchangeName = "reply_exchange";

            IMessageTypeResolver resolver = new MessageBindingResolver(typeof(Response).Assembly);

            var broker = Broker.New(_ =>
            {
                _.Endpoint(new Uri(endpointUrl, UriKind.Absolute));
                _.ResolveMessageTypeBy(resolver);
            });

            var exchange = broker.DeclareDirectExchange("request_exchange");
            var queue    = broker.DeclareQueue("request_queue");

            broker.DeclareExchangeBinding(exchange, queue, routingKey);
            broker.SubscribeByAtLeastOnce(queue, _ => _.Consumes(new RequestConsumer(endpointUrl)));

            var replyExchange = broker.DeclareDirectExchange(replyExchangeName);
            var replyQueue    = broker.DeclareQueue(replyQueueName);

            broker.DeclareExchangeBinding(replyExchange, replyQueue, replyQueueName);
            broker.SubscribeByAtLeastOnce(replyQueue, _ => _.Consumes(new ResponseConsumer()));

            var connection = broker.Connect();

            var message = new OutboundMessage <Request>(new Request {
                Bar = 42
            });

            message.SetCorrelationId(Guid.NewGuid().ToString());
            message.SetReply(new DirectReplyConfiguration(replyExchangeName, replyQueueName));
            connection.PublishAsync(message, exchange, routingKey);

            Console.ReadLine();
            connection.Dispose();
        }