[jboss-cvs] JBoss Messaging SVN: r4709 - branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 22 11:52:58 EDT 2008
Author: jmesnil
Date: 2008-07-22 11:52:58 -0400 (Tue, 22 Jul 2008)
New Revision: 4709
Added:
branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* added unit tests for QueueControl
Added: branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java (rev 0)
+++ branches/Branch_JBMESSAGING-1303/tests/src/org/jboss/messaging/tests/unit/core/management/impl/QueueControlTest.java 2008-07-22 15:52:58 UTC (rev 4709)
@@ -0,0 +1,331 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.tests.unit.core.management.impl;
+
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
+import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import javax.management.openmbean.CompositeData;
+import javax.management.openmbean.TabularData;
+
+import junit.framework.TestCase;
+
+import org.easymock.EasyMock;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.filter.Filter;
+import org.jboss.messaging.core.management.impl.QueueControl;
+import org.jboss.messaging.core.persistence.StorageManager;
+import org.jboss.messaging.core.server.MessageReference;
+import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.tests.util.RandomUtil;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class QueueControlTest extends TestCase
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ // Public --------------------------------------------------------
+
+ public void testGetName() throws Exception
+ {
+ String name = randomString();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.getName()).andReturn(new SimpleString(name));
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(name, control.getName());
+
+ verify(queue, storageManager);
+ }
+
+ public void testGetFilter() throws Exception
+ {
+ String filterStr = "color = 'green'";
+ Queue queue = createMock(Queue.class);
+ Filter filter = createMock(Filter.class);
+ expect(filter.getFilterString()).andReturn(new SimpleString(filterStr));
+ expect(queue.getFilter()).andReturn(filter);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager, filter);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(filterStr, control.getFilter());
+
+ verify(queue, storageManager, filter);
+ }
+
+ public void testGetFilterWithNull() throws Exception
+ {
+ Queue queue = createMock(Queue.class);
+ expect(queue.getFilter()).andReturn(null);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertNull(control.getFilter());
+
+ verify(queue, storageManager);
+ }
+
+ public void testIsClustered() throws Exception
+ {
+ boolean clustered = randomBoolean();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.isClustered()).andReturn(clustered);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(clustered, control.isClustered());
+
+ verify(queue, storageManager);
+ }
+
+ public void testIsDurable() throws Exception
+ {
+ boolean durable = randomBoolean();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.isDurable()).andReturn(durable);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(durable, control.isDurable());
+
+ verify(queue, storageManager);
+ }
+
+ public void testIsTemporary() throws Exception
+ {
+ boolean temp = randomBoolean();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.isTemporary()).andReturn(temp);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(temp, control.isTemporary());
+
+ verify(queue, storageManager);
+ }
+
+ public void testGetMessageCount() throws Exception
+ {
+ int count = randomInt();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.getMessageCount()).andReturn(count);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(count, control.getMessageCount());
+
+ verify(queue, storageManager);
+ }
+
+ public void testGetMaxSizeBytes() throws Exception
+ {
+ int size = randomInt();
+
+ Queue queue = createMock(Queue.class);
+ expect(queue.getMaxSizeBytes()).andReturn(size);
+ StorageManager storageManager = createMock(StorageManager.class);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(size, control.getMaxSizeBytes());
+
+ verify(queue, storageManager);
+ }
+
+ public void testRemoveAllMessages() throws Exception
+ {
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ queue.deleteAllReferences(storageManager);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ control.removeAllMessages();
+
+ verify(queue, storageManager);
+ }
+
+ public void testRemoveAllMessagesThrowsException() throws Exception
+ {
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ queue.deleteAllReferences(storageManager);
+ expectLastCall().andThrow(new MessagingException());
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ try
+ {
+ control.removeAllMessages();
+ fail("IllegalStateException");
+ } catch (IllegalStateException e)
+ {
+
+ }
+
+ verify(queue, storageManager);
+ }
+
+ public void testRemoveMessage() throws Exception
+ {
+ long messageID = randomLong();
+ boolean deleted = randomBoolean();
+
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.deleteReference(messageID, storageManager)).andReturn(
+ deleted);
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ assertEquals(deleted, control.removeMessage(messageID));
+
+ verify(queue, storageManager);
+ }
+
+ public void testRemoveMessageThrowsException() throws Exception
+ {
+ long messageID = randomLong();
+
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.deleteReference(messageID, storageManager)).andThrow(
+ new MessagingException());
+
+ replay(queue, storageManager);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ try
+ {
+ control.removeMessage(messageID);
+ fail("IllegalStateException");
+ } catch (IllegalStateException e)
+ {
+
+ }
+
+ verify(queue, storageManager);
+ }
+
+
+ public void testListMessages() throws Exception
+ {
+ String filterStr = "color = 'green'";
+ List<MessageReference> refs = new ArrayList<MessageReference>();
+
+ MessageReference ref = createMock(MessageReference.class);
+ ServerMessage message = createMock(ServerMessage.class);
+ expect(message.getMessageID()).andStubReturn(randomLong());
+ expect(message.getDestination()).andStubReturn(randomSimpleString());
+ expect(message.isDurable()).andStubReturn(randomBoolean());
+ expect(message.getTimestamp()).andStubReturn(randomLong());
+ expect(message.getType()).andStubReturn(randomByte());
+ expect(message.getEncodeSize()).andStubReturn(randomInt());
+ expect(message.getPriority()).andStubReturn(randomByte());
+ expect(message.isExpired()).andStubReturn(randomBoolean());
+ expect(message.getExpiration()).andStubReturn(randomLong());
+ expect(message.getPropertyNames()).andReturn(new HashSet<SimpleString>());
+ expect(ref.getMessage()).andReturn(message);
+ refs.add(ref);
+ Queue queue = createMock(Queue.class);
+ StorageManager storageManager = createMock(StorageManager.class);
+ expect(queue.list(isA(Filter.class))).andReturn(refs);
+
+ replay(queue, storageManager, ref, message);
+
+ QueueControl control = new QueueControl(queue, storageManager);
+ TabularData data = control.listMessages(filterStr);
+ assertEquals(1, data.size());
+ CompositeData info = data.get(new Object[] { message.getMessageID()});
+ assertNotNull(info);
+ assertEquals(message.getMessageID(), info.get("id"));
+ assertEquals(message.getDestination().toString(), info.get("destination"));
+ assertEquals(message.isDurable(), info.get("durable"));
+ assertEquals(message.getTimestamp(), info.get("timestamp"));
+ assertEquals(message.getType(), info.get("type"));
+ assertEquals(message.getEncodeSize(), info.get("size"));
+ assertEquals(message.getPriority(), info.get("priority"));
+ assertEquals(message.isExpired(), info.get("expired"));
+ assertEquals(message.getExpiration(), info.get("expiration"));
+ verify(queue, storageManager, ref, message);
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
More information about the jboss-cvs-commits
mailing list