diff options
author | Bhupendra Bhusman Bhardwaj <bhupendrab@apache.org> | 2006-12-18 14:30:29 +0000 |
---|---|---|
committer | Bhupendra Bhusman Bhardwaj <bhupendrab@apache.org> | 2006-12-18 14:30:29 +0000 |
commit | 1d38989c35a211ace6f379dc83cbdd6a36295d53 (patch) | |
tree | c1741eda52389d0b6e65f54a21b91011a7556064 | |
parent | 5c971b62d1cbb2a29251d0300f3d8714bdb02658 (diff) | |
download | qpid-python-1d38989c35a211ace6f379dc83cbdd6a36295d53.tar.gz |
QPID-188
Adding unit tests for Java broker JMX code
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@488281 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/systests/src/test/java/org/apache/qpid/server/queue/AMQueueMBeanTest.java | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/java/systests/src/test/java/org/apache/qpid/server/queue/AMQueueMBeanTest.java b/java/systests/src/test/java/org/apache/qpid/server/queue/AMQueueMBeanTest.java new file mode 100644 index 0000000000..a9dacac43c --- /dev/null +++ b/java/systests/src/test/java/org/apache/qpid/server/queue/AMQueueMBeanTest.java @@ -0,0 +1,179 @@ +/* + * + * Copyright (c) 2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package org.apache.qpid.server.queue; + +import junit.framework.TestCase; +import org.apache.qpid.AMQException; +import org.apache.qpid.framing.BasicPublishBody; +import org.apache.qpid.framing.ContentHeaderBody; +import org.apache.qpid.server.AMQChannel; +import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.SkeletonMessageStore; + +import javax.management.JMException; + +/** + * Test class to test AMQQueueMBean attribtues and operations + */ +public class AMQueueMBeanTest extends TestCase +{ + private AMQQueue _queue; + private AMQQueueMBean _queueMBean; + private QueueRegistry _queueRegistry; + private MessageStore _messageStore = new SkeletonMessageStore(); + private MockProtocolSession _protocolSession; + private AMQChannel _channel; + + public void testMessageCount() throws Exception + { + int messageCount = 10; + sendMessages(messageCount); + assertTrue(_queueMBean.getMessageCount() == messageCount); + assertTrue(_queueMBean.getReceivedMessageCount() == messageCount); + assertTrue(_queueMBean.getQueueDepth() == 10); + + _queueMBean.deleteMessageFromTop(); + assertTrue(_queueMBean.getMessageCount() == messageCount - 1); + assertTrue(_queueMBean.getReceivedMessageCount() == messageCount); + + _queueMBean.clearQueue(); + assertTrue(_queueMBean.getMessageCount() == 0); + assertTrue(_queueMBean.getReceivedMessageCount() == messageCount); + } + + public void testConsumerCount() throws Exception + { + SubscriptionManager mgr = _queue.getSubscribers(); + assertFalse(mgr.hasActiveSubscribers()); + assertTrue(_queueMBean.getActiveConsumerCount() == 0); + + _channel = new AMQChannel(1, _messageStore, null); + _protocolSession = new MockProtocolSession(_messageStore); + _protocolSession.addChannel(_channel); + + _queue.registerProtocolSession(_protocolSession, 1, "test", false); + assertTrue(_queueMBean.getActiveConsumerCount() == 1); + + SubscriptionSet _subscribers = (SubscriptionSet)mgr; + SubscriptionTestHelper s1 = new SubscriptionTestHelper("S1"); + SubscriptionTestHelper s2 = new SubscriptionTestHelper("S2"); + _subscribers.addSubscriber(s1); + _subscribers.addSubscriber(s2); + assertTrue(_queueMBean.getActiveConsumerCount() == 3); + assertTrue(_queueMBean.getConsumerCount() == 3); + + s1.setSuspended(true); + assertTrue(_queueMBean.getActiveConsumerCount() == 2); + assertTrue(_queueMBean.getConsumerCount() == 3); + } + + public void testGeneralProperties() + { + _queueMBean.setMaximumMessageCount(50000); + _queueMBean.setMaximumMessageSize(2000l); + _queueMBean.setMaximumQueueDepth(1000l); + + assertTrue(_queueMBean.getMaximumMessageCount() == 50000); + assertTrue(_queueMBean.getMaximumMessageSize() == 2000); + assertTrue(_queueMBean.getMaximumQueueDepth() == 1000); + + assertTrue(_queueMBean.getName().equals("testQueue")); + assertTrue(_queueMBean.getOwner().equals("AMQueueMBeanTest")); + assertFalse(_queueMBean.isAutoDelete()); + assertFalse(_queueMBean.isDurable()); + } + + public void testExceptions() throws Exception + { + try + { + _queueMBean.viewMessages(0, 3); + fail(); + } + catch (JMException ex) + { + + } + + try + { + _queueMBean.viewMessages(2, 1); + fail(); + } + catch (JMException ex) + { + + } + + try + { + _queueMBean.viewMessages(-1, 1); + fail(); + } + catch (JMException ex) + { + + } + + AMQMessage msg = message(false); + long id = msg.getMessageId(); + _queue.clearQueue(); + _queue.deliver(msg); + _queueMBean.viewMessageContent(id); + try + { + _queueMBean.viewMessageContent(id + 1); + fail(); + } + catch (JMException ex) + { + + } + } + + private AMQMessage message(boolean immediate) throws AMQException + { + BasicPublishBody publish = new BasicPublishBody(); + publish.immediate = immediate; + ContentHeaderBody contentHeaderBody = new ContentHeaderBody(); + contentHeaderBody.bodySize = 1000; // in bytes + return new AMQMessage(_messageStore, publish, contentHeaderBody, null); + } + + @Override + protected void setUp() throws Exception + { + super.setUp(); + _queueRegistry = new DefaultQueueRegistry(); + _queue = new AMQQueue("testQueue", false, "AMQueueMBeanTest", false, _queueRegistry); + _queueMBean = new AMQQueueMBean(_queue); + } + + private void sendMessages(int messageCount) throws AMQException + { + AMQMessage[] messages = new AMQMessage[messageCount]; + for (int i = 0; i < messages.length; i++) + { + messages[i] = message(false);; + } + for (int i = 0; i < messageCount; i++) + { + _queue.deliver(messages[i]); + } + } +} |