/// <summary>
        /// Initializes a new instance of the <see cref="HomeController"/> class.
        /// </summary>
        /// <param name="options"></param>
        /// <param name="logger">The logger.</param>
        /// <param name="consumer"></param>
        /// <param name="producer"></param>
        /// <param name="admin"></param>
        public HomeController(
            IOptions <TestOptions> options,
            ILogger <HomeController> logger,
            TestConsumer consumer,
            TestProducer producer,
            TestAdmin admin)
        {
            this.logger   = logger;
            this.options  = options;
            this.consumer = consumer;
            this.producer = producer;
            this.admin    = admin;

            this.logger.LogDebug($"{nameof(HomeController)}: Was initialized.");
        }
Exemple #2
0
        public ListenFromAutoDeleteQueueTest()
        {
            connectionFactory = new CachingConnectionFactory("localhost")
            {
                IsPublisherReturns = true
            };

            // Container Admin
            containerAdmin = new TestAdmin(connectionFactory);

            // Exchange
            var directExchange = new DirectExchange("testContainerWithAutoDeleteQueues", true, true);

            listenerContainer1 = new DirectMessageListenerContainer(null, connectionFactory, "container1");
            listenerContainer1.ConsumersPerQueue = 2;
            listenerContainer1.AddQueueNames(Q1, Q2);
            containerAdmin.DeclareExchange(directExchange);
            containerAdmin.DeclareQueue(new Config.Queue(Q1, true, false, true));
            containerAdmin.DeclareQueue(new Config.Queue(Q2, true, false, true));
            containerAdmin.DeclareBinding(new Binding("b1", Q1, Binding.DestinationType.QUEUE, directExchange.ExchangeName, Q1, null));
            containerAdmin.DeclareBinding(new Binding("b2", Q2, Binding.DestinationType.QUEUE, directExchange.ExchangeName, Q2, null));

            // Listener
            listener = new AppendingListener();
            var adapter = new MessageListenerAdapter(null, listener);

            listenerContainer1.MessageListener = adapter;
            listenerContainer1.Start();
            listenerContainer1._startedLatch.Wait(TimeSpan.FromSeconds(10));

            // Conditional declarations
            var otherExchange = new DirectExchange(Exch2, true, true);

            containerAdmin.DeclareExchange(otherExchange);
            containerAdmin.DeclareQueue(new Config.Queue(Q3, true, false, true));
            containerAdmin.DeclareBinding(new Binding("b3", Q3, Binding.DestinationType.QUEUE, otherExchange.ExchangeName, Q3, null));

            listenerContainer2 = new DirectMessageListenerContainer(null, connectionFactory, "container2");
            listenerContainer2.IsAutoStartup   = false;
            listenerContainer2.ShutdownTimeout = 50;
            listenerContainer2.AddQueueNames(Q3);
            listenerContainer2.MessageListener = adapter;

            expiringQueue = new Config.Queue(Guid.NewGuid().ToString(), true, false, false, new Dictionary <string, object>()
            {
                { "x-expires", 200 }
            });
            containerAdmin.DeclareQueue(expiringQueue);
            listenerContainer3 = new DirectMessageListenerContainer(null, connectionFactory, "container3");
            listenerContainer3.IsAutoStartup   = false;
            listenerContainer3.ShutdownTimeout = 50;
            listenerContainer3.AddQueueNames(expiringQueue.QueueName);
            listenerContainer3.MessageListener = adapter;

            listenerContainer4 = new DirectMessageListenerContainer(null, connectionFactory, "container4");

            listenerContainer4.IsAutoStartup   = false;
            listenerContainer4.ShutdownTimeout = 50;
            listenerContainer4.AddQueueNames(Q2);
            listenerContainer4.MessageListener = adapter;
            listenerContainer4.AutoDeclare     = false;
        }