Exemplo n.º 1
0
        /// <summary>
        /// Adds the specified queue name.
        /// </summary>
        /// <param name="queueName">Name of the queue.</param>
        /// <param name="config">The configuration.</param>
        public void Add(string queueName, CreateQueueConfig config)
        {
            var queue = new QueueInfo {
                Name = queueName, Config = config
            };

            Add(queue);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates the queue.
        /// </summary>
        /// <param name="queueName">Name of the queue.</param>
        /// <param name="config">The configuration.</param>
        /// <returns></returns>
        public virtual IFluentRabbit CreateQueue(string queueName, CreateQueueConfig config)
        {
            return(TryCatch_Trace(MethodBase.GetCurrentMethod(),
                                  () =>
            {
                //validation
                config.ThrowExceptionIfNull <ArgumentNullException>(nameof(config));
                RabbitMqClient.Model.ThrowExceptionIfNull <ModelIsNullException>();

                //execution
                RabbitMqClient.Model.QueueDeclare(queueName, config.Durable, config.Exclusive, config.AutoDelete, config.Arguments);
            }));
        }
Exemplo n.º 3
0
        public void ExecuteConfigure()
        {
            var queueConfig    = new CreateQueueConfig();
            var exchangeConfig = new CreateExchangeConfig();

            var exchange1   = $"Exchange_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";
            var exchange2   = $"Exchange_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";
            var queue1      = $"Queue_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";
            var queue2      = $"Queue_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";
            var routingKey1 = $"RoutingKey_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";
            var routingKey2 = $"RoutingKey_{MethodBase.GetCurrentMethod().Name}_{Guid.NewGuid()}";

            _rabbit.Configure(
                p =>
            {
                p.Exchanges.Add(exchange1, exchangeConfig);
                p.Exchanges.Add(exchange2, exchangeConfig);

                p.Queues.Add(q =>
                {
                    q.Name   = queue1;
                    q.Config = queueConfig;
                }
                             );
                p.Queues.Add(queue2, queueConfig);

                p.Bindings.Add(
                    r =>
                {
                    r.Config.ExchangeName = exchange1;
                    r.Config.QueueName    = queue1;
                    r.Config.RoutingKey   = routingKey1;
                });
                p.Bindings.Add(
                    r =>
                {
                    r.Config.ExchangeName = exchange2;
                    r.Config.QueueName    = queue2;
                    r.Config.RoutingKey   = routingKey2;
                });
            }
                )
            .Connect()
            .ConfigureUp()
            .ConfigureDown()
            ;

            _rabbit.Configuration.Exchanges.Should().ContainSingle(p => p.Name == exchange1);
        }