public void TestArgumentsQueue() { var queue = this.objectFactory.GetObject<Queue>("arguments"); Assert.IsNotNull(queue); var template = new RabbitTemplate(new CachingConnectionFactory(BrokerTestUtils.GetPort())); var rabbitAdmin = new RabbitAdmin(template.ConnectionFactory); rabbitAdmin.DeleteQueue(queue.Name); rabbitAdmin.DeclareQueue(queue); Assert.AreEqual(100L, queue.Arguments["x-message-ttl"]); template.ConvertAndSend(queue.Name, "message"); Thread.Sleep(200); var result = (string)template.ReceiveAndConvert(queue.Name); Assert.AreEqual(null, result); }
/// <summary> /// Applies this instance. /// </summary> /// <returns>Something here.</returns> /// <remarks></remarks> public bool Apply() { // Check at the beginning, so this can be used as a static field if (this.assumeOnline) { Assume.That(brokerOnline[this.port] == true); } else { Assume.That(brokerOffline[this.port] == true); } var connectionFactory = new CachingConnectionFactory(); try { connectionFactory.Port = this.port; if (StringUtils.HasText(this.hostName)) { connectionFactory.Host = this.hostName; } var admin = new RabbitAdmin(connectionFactory); foreach (var queue in this.queues) { var queueName = queue.Name; if (this.purge) { logger.Debug("Deleting queue: " + queueName); // Delete completely - gets rid of consumers and bindings as well admin.DeleteQueue(queueName); } if (this.IsDefaultQueue(queueName)) { // Just for test probe. admin.DeleteQueue(queueName); } else { admin.DeclareQueue(queue); } } if (brokerOffline.ContainsKey(this.port)) { brokerOffline[this.port] = false; } else { brokerOffline.Add(this.port, false); } if (!this.assumeOnline) { Assume.That(brokerOffline[this.port] == true); } } catch (Exception e) { logger.Warn("Not executing tests because basic connectivity test failed", e); if (brokerOnline.ContainsKey(this.port)) { brokerOnline[this.port] = false; } else { brokerOnline.Add(this.port, false); } if (this.assumeOnline) { // Assume.That(!(e is Exception)); } } finally { connectionFactory.Dispose(); } return true; // return base.Apply(base, method, target); }
/// <summary> /// Applies this instance. /// </summary> /// <returns>Something here.</returns> public bool Apply() { // Check at the beginning, so this can be used as a static field if (this.assumeOnline) { Assume.That(brokerOnline[this.port]); } else { Assume.That(brokerOffline[this.port]); } var connectionFactory = new CachingConnectionFactory(); try { connectionFactory.Port = this.port; if (!string.IsNullOrWhiteSpace(this.hostName)) { connectionFactory.Host = this.hostName; } var admin = new RabbitAdmin(connectionFactory); foreach (var queue in this.queues) { var queueName = queue.Name; if (this.purge) { Logger.Debug("Deleting queue: " + queueName); // Delete completely - gets rid of consumers and bindings as well try { admin.DeleteQueue(queueName); } catch (Exception ex) { Logger.Warn("Could not delete queue. Assuming it didn't exist.", ex); } } if (this.IsDefaultQueue(queueName)) { // Just for test probe. try { admin.DeleteQueue(queueName); } catch (Exception ex) { Logger.Warn("Could not delete queue. Assuming it didn't exist.", ex); } } else { admin.DeclareQueue(queue); } } brokerOffline.AddOrUpdate(this.port, false); if (!this.assumeOnline) { Assume.That(brokerOffline[this.port]); } } catch (Exception e) { Logger.Warn("Not executing tests because basic connectivity test failed", e); brokerOnline.AddOrUpdate(this.port, false); if (this.assumeOnline) { return false; // Assume.That(!(e is Exception)); } } finally { connectionFactory.Dispose(); } return true; // return base.Apply(base, method, target); }