summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java105
1 files changed, 102 insertions, 3 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java
index 6c135e8ba7..7d128f2bc5 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/AMQBrokerManagerMBeanTest.java
@@ -20,18 +20,31 @@
*/
package org.apache.qpid.server;
-import junit.framework.TestCase;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.configuration.XMLConfiguration;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.management.common.mbeans.ManagedBroker;
+import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.exchange.Exchange;
import org.apache.qpid.server.exchange.ExchangeRegistry;
+import org.apache.qpid.server.logging.SystemOutMessageLogger;
+import org.apache.qpid.server.logging.actors.CurrentActor;
+import org.apache.qpid.server.logging.actors.TestLogActor;
+import org.apache.qpid.server.queue.AMQPriorityQueue;
+import org.apache.qpid.server.queue.AMQQueue;
+import org.apache.qpid.server.queue.AMQQueueFactory;
import org.apache.qpid.server.queue.QueueRegistry;
import org.apache.qpid.server.registry.ApplicationRegistry;
import org.apache.qpid.server.registry.IApplicationRegistry;
-import org.apache.qpid.server.util.InternalBrokerBaseCase;
+import org.apache.qpid.server.store.TestableMemoryMessageStore;
+import org.apache.qpid.server.util.TestApplicationRegistry;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.test.utils.QpidTestCase;
-public class AMQBrokerManagerMBeanTest extends InternalBrokerBaseCase
+public class AMQBrokerManagerMBeanTest extends QpidTestCase
{
private QueueRegistry _queueRegistry;
private ExchangeRegistry _exchangeRegistry;
@@ -81,14 +94,100 @@ public class AMQBrokerManagerMBeanTest extends InternalBrokerBaseCase
assertTrue(_queueRegistry.getQueue(new AMQShortString(queueName)) == null);
}
+ public void testCreateNewQueueBindsToDefaultExchange() throws Exception
+ {
+ String queueName = "testQueue_" + System.currentTimeMillis();
+
+ ManagedBroker mbean = new AMQBrokerManagerMBean((VirtualHostImpl.VirtualHostMBean) _vHost.getManagedObject());
+ ExchangeRegistry exReg = _vHost.getExchangeRegistry();
+ Exchange defaultExchange = exReg.getDefaultExchange();
+
+ mbean.createNewQueue(queueName, "test", false);
+ assertTrue(_queueRegistry.getQueue(new AMQShortString(queueName)) != null);
+
+ assertTrue("New queue should be bound to default exchange", defaultExchange.isBound(new AMQShortString(queueName)));
+ }
+
+ /**
+ * Tests that setting the {@link AMQQueueFactory#X_QPID_MAXIMUM_DELIVERY_COUNT} argument does cause the
+ * maximum delivery count to be set on the Queue.
+ */
+ public void testCreateNewQueueWithMaximumDeliveryCount() throws Exception
+ {
+ final Map<String,Object> args = new HashMap<String, Object>();
+ args.put(AMQQueueFactory.X_QPID_MAXIMUM_DELIVERY_COUNT, 5);
+
+ final AMQShortString queueName = new AMQShortString("testCreateNewQueueWithMaximumDeliveryCount");
+
+ final QueueRegistry qReg = _vHost.getQueueRegistry();
+
+ assertNull("The queue should not yet exist", qReg.getQueue(queueName));
+
+ final ManagedBroker mbean = new AMQBrokerManagerMBean((VirtualHostImpl.VirtualHostMBean) _vHost.getManagedObject());
+ mbean.createNewQueue(queueName.asString(), "test", false, args);
+
+ final AMQQueue createdQueue = qReg.getQueue(queueName);
+ assertNotNull("The queue was not registered as expected", createdQueue);
+ assertEquals("Unexpected maximum delivery count", 5, createdQueue.getMaximumDeliveryCount());
+ }
+
+ /**
+ * Tests that setting the {@link AMQQueueFactory#X_QPID_PRIORITIES} argument prompts creation of
+ * a Priority Queue.
+ */
+ public void testCreatePriorityQueue() throws Exception
+ {
+ int numPriorities = 7;
+ Map<String,Object> args = new HashMap<String, Object>();
+ args.put(AMQQueueFactory.X_QPID_PRIORITIES, numPriorities);
+
+ AMQShortString queueName = new AMQShortString("testCreatePriorityQueue");
+
+ QueueRegistry qReg = _vHost.getQueueRegistry();
+
+ assertNull("The queue should not yet exist", qReg.getQueue(queueName));
+
+ ManagedBroker mbean = new AMQBrokerManagerMBean((VirtualHostImpl.VirtualHostMBean) _vHost.getManagedObject());
+ mbean.createNewQueue(queueName.asString(), "test", false, args);
+
+ AMQQueue queue = qReg.getQueue(queueName);
+ assertEquals("Queue is not a priorty queue", AMQPriorityQueue.class, queue.getClass());
+ assertEquals("Number of priorities supported was not as expected", numPriorities, ((AMQPriorityQueue)queue).getPriorities());
+ }
+
@Override
public void setUp() throws Exception
{
super.setUp();
+
+ CurrentActor.set(new TestLogActor(new SystemOutMessageLogger()));
+
+ XMLConfiguration configXml = new XMLConfiguration();
+ configXml.addProperty("virtualhosts.virtualhost(-1).name", "test");
+ configXml.addProperty("virtualhosts.virtualhost(-1).test.store.class", TestableMemoryMessageStore.class.getName());
+
+ ServerConfiguration configuration = new ServerConfiguration(configXml);
+
+ ApplicationRegistry registry = new TestApplicationRegistry(configuration);
+ ApplicationRegistry.initialise(registry);
+ registry.getVirtualHostRegistry().setDefaultVirtualHostName("test");
+
IApplicationRegistry appRegistry = ApplicationRegistry.getInstance();
_vHost = appRegistry.getVirtualHostRegistry().getVirtualHost("test");
_queueRegistry = _vHost.getQueueRegistry();
_exchangeRegistry = _vHost.getExchangeRegistry();
}
+ @Override
+ public void tearDown() throws Exception
+ {
+ try
+ {
+ super.tearDown();
+ }
+ finally
+ {
+ ApplicationRegistry.remove();
+ }
+ }
}