[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