[jboss-cvs] JBoss Messaging SVN: r4579 - trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 25 10:34:41 EDT 2008


Author: ataylor
Date: 2008-06-25 10:34:41 -0400 (Wed, 25 Jun 2008)
New Revision: 4579

Added:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerPacketHandlerSupportTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerPacketHandlerTest.java
Log:
new tests

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerPacketHandlerSupportTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerPacketHandlerSupportTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerPacketHandlerSupportTest.java	2008-06-25 14:34:41 UTC (rev 4579)
@@ -0,0 +1,178 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-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.server.impl;
+
+import static org.easymock.EasyMock.*;
+import org.easymock.IAnswer;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
+import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.NO_ID_SET;
+import org.jboss.messaging.core.server.impl.ServerPacketHandlerSupport;
+import org.jboss.messaging.tests.util.UnitTestCase;
+
+/**
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public class ServerPacketHandlerSupportTest extends UnitTestCase
+{
+   public void testCreateNullResponseNiIdSet()
+   {
+      Packet message = createStrictMock(Packet.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerPacketHandlerSupport handler = new ServerPacketHandlerSupport()
+      {
+         protected Packet doHandle(Packet packet, PacketReturner sender) throws Exception
+         {
+            return null;
+         }
+
+         public long getID()
+         {
+            return 0;
+         }
+      };
+
+      replay(message, returner);
+      handler.handle(message, returner);
+      verify(message, returner);
+   }
+
+   public void testCreateResponseNiIdSet()
+   {
+      Packet message = createStrictMock(Packet.class);
+      final Packet response = createStrictMock(Packet.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerPacketHandlerSupport handler = new ServerPacketHandlerSupport()
+      {
+         protected Packet doHandle(Packet packet, PacketReturner sender) throws Exception
+         {
+            return response;
+         }
+
+         public long getID()
+         {
+            return 0;
+         }
+      };
+
+      expect(message.getResponseTargetID()).andReturn(NO_ID_SET);
+      replay(message, response, returner);
+      handler.handle(message, returner);
+      verify(message, response, returner);
+   }
+
+   public void testCreateResponseIdSet() throws Exception
+   {
+      Packet message = createStrictMock(Packet.class);
+      final Packet response = createStrictMock(Packet.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerPacketHandlerSupport handler = new ServerPacketHandlerSupport()
+      {
+         protected Packet doHandle(Packet packet, PacketReturner sender) throws Exception
+         {
+            return response;
+         }
+
+         public long getID()
+         {
+            return 0;
+         }
+      };
+
+      expect(message.getResponseTargetID()).andReturn(1l);
+      response.normalize(message);
+      returner.send(response);
+      replay(message, response, returner);
+      handler.handle(message, returner);
+      verify(message, response, returner);
+   }
+
+   public void testCreateResponseIdSetMessagingException() throws Exception
+   {
+      Packet message = createStrictMock(Packet.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerPacketHandlerSupport handler = new ServerPacketHandlerSupport()
+      {
+         protected Packet doHandle(Packet packet, PacketReturner sender) throws Exception
+         {
+            throw new MessagingException(99999);
+         }
+
+         public long getID()
+         {
+            return 0;
+         }
+      };
+
+      expect(message.getResponseTargetID()).andStubReturn(1l);
+      returner.send((Packet) anyObject());
+      expectLastCall().andAnswer(new IAnswer<Object>()
+      {
+         public Object answer() throws Throwable
+         {
+            assertEquals(MessagingExceptionMessage.class, getCurrentArguments()[0].getClass());
+            MessagingExceptionMessage m = (MessagingExceptionMessage) getCurrentArguments()[0];
+            assertEquals(m.getException().getCode(), 99999);
+            return null;
+         }
+      });
+      replay(message, returner);
+      handler.handle(message, returner);
+      verify(message, returner);
+   }
+
+   public void testCreateResponseIdSetException() throws Exception
+   {
+      Packet message = createStrictMock(Packet.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerPacketHandlerSupport handler = new ServerPacketHandlerSupport()
+      {
+         protected Packet doHandle(Packet packet, PacketReturner sender) throws Exception
+         {
+            throw new Exception();
+         }
+
+         public long getID()
+         {
+            return 0;
+         }
+      };
+
+      expect(message.getResponseTargetID()).andStubReturn(1l);
+      returner.send((Packet) anyObject());
+      expectLastCall().andAnswer(new IAnswer<Object>()
+      {
+         public Object answer() throws Throwable
+         {
+            assertEquals(MessagingExceptionMessage.class, getCurrentArguments()[0].getClass());
+            MessagingExceptionMessage m = (MessagingExceptionMessage) getCurrentArguments()[0];
+            assertEquals(m.getException().getCode(), MessagingException.INTERNAL_ERROR);
+            return null;
+         }
+      });
+      replay(message, returner);
+      handler.handle(message, returner);
+      verify(message, returner);
+   }
+}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerImplTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerImplTest.java	2008-06-25 14:34:41 UTC (rev 4579)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-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.server.impl;
+
+import static org.easymock.EasyMock.*;
+import org.easymock.IAnswer;
+import org.jboss.messaging.core.postoffice.FlowController;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerFlowCreditMessage;
+import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.server.ServerSession;
+import org.jboss.messaging.core.server.impl.ServerProducerImpl;
+import org.jboss.messaging.tests.util.UnitTestCase;
+import org.jboss.messaging.util.SimpleString;
+
+/**
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public class ServerProducerImplTest extends UnitTestCase
+{
+   private ServerSession session;
+   private PacketReturner returner;
+   private FlowController flowController;
+   private PacketDispatcher dispatcher;
+
+   public void testGetId() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      assertEquals(999, producer.getID());
+   }
+
+   public void testSetAndGetWaiting() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      producer.setWaiting(false);
+      assertFalse(producer.isWaiting());
+      producer.setWaiting(true);
+      assertTrue(producer.isWaiting());
+   }
+
+   public void testClose() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      session.removeProducer(producer);
+      replay(session, returner, flowController, dispatcher);
+      producer.close();
+      verify(session, returner, flowController, dispatcher);
+   }
+
+   public void testRequestAndSendCreditsWaiting() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      replay(session, returner, flowController, dispatcher);
+      producer.setWaiting(true);
+      producer.requestAndSendCredits();
+      verify(session, returner, flowController, dispatcher);
+   }
+
+   public void testRequestAndSendCreditsNotWaiting() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      flowController.requestAndSendCredits(producer, 0);
+      replay(session, returner, flowController, dispatcher);
+      producer.setWaiting(false);
+      producer.requestAndSendCredits();
+      verify(session, returner, flowController, dispatcher);
+   }
+
+   public void testSendCreditsWaiting() throws Exception
+   {
+      ServerProducerImpl producer = create(999);
+      expect(session.getID()).andReturn(888l);
+      returner.send((Packet) anyObject());
+      expectLastCall().andAnswer(new IAnswer<Object>()
+      {
+         public Object answer() throws Throwable
+         {
+            assertEquals(ProducerFlowCreditMessage.class, getCurrentArguments()[0].getClass());
+            ProducerFlowCreditMessage m = (ProducerFlowCreditMessage) getCurrentArguments()[0];
+            assertEquals(m.getTokens(), 12345);
+            return null;
+         }
+      });
+      replay(session, returner, flowController, dispatcher);
+      producer.sendCredits(12345);
+      verify(session, returner, flowController, dispatcher);
+   }
+
+   public void testSend() throws Exception
+   {
+      ServerMessage message = createStrictMock(ServerMessage.class);
+      ServerProducerImpl producer = create(999);
+      expect(message.getEncodeSize()).andReturn(99);
+      session.send((ServerMessage) anyObject());
+      replay(session, returner, flowController, dispatcher, message);
+      producer.send(message);
+      verify(session, returner, flowController, dispatcher, message);
+   }
+
+   public void testSendAndRequestCredits() throws Exception
+   {
+      ServerMessage message = createStrictMock(ServerMessage.class);
+      ServerProducerImpl producer = create(999);
+      expect(message.getEncodeSize()).andReturn(101);
+      flowController.requestAndSendCredits(producer, 101);
+      session.send((ServerMessage) anyObject());
+      replay(session, returner, flowController, dispatcher, message);
+      producer.send(message);
+      verify(session, returner, flowController, dispatcher, message);
+   }
+
+   private ServerProducerImpl create(long id) throws Exception
+   {
+
+      session = createStrictMock(ServerSession.class);
+      returner = createStrictMock(PacketReturner.class);
+      flowController = createStrictMock(FlowController.class);
+      dispatcher = createStrictMock(PacketDispatcher.class);
+      expect(dispatcher.generateID()).andReturn(id);
+      replay(dispatcher);
+      ServerProducerImpl producer = new ServerProducerImpl(session, 1, new SimpleString("testQ"),
+              returner, flowController, 100,
+              dispatcher);
+      verify(dispatcher);
+      reset(dispatcher);
+      return producer;
+   }
+}

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerPacketHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerPacketHandlerTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/ServerProducerPacketHandlerTest.java	2008-06-25 14:34:41 UTC (rev 4579)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-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.server.impl;
+
+import org.easymock.EasyMock;
+import static org.easymock.EasyMock.*;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.Packet;
+import org.jboss.messaging.core.remoting.PacketReturner;
+import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
+import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.core.server.ServerProducer;
+import org.jboss.messaging.core.server.impl.ServerProducerPacketHandler;
+import org.jboss.messaging.tests.util.UnitTestCase;
+
+/**
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ */
+public class ServerProducerPacketHandlerTest extends UnitTestCase
+{
+   public void testGetId()
+   {
+      ServerProducer producer = createStrictMock(ServerProducer.class);
+      ServerProducerPacketHandler handler = new ServerProducerPacketHandler(producer);
+      expect(producer.getID()).andReturn(999l);
+      replay(producer);
+      assertEquals(handler.getID(), 999);
+      verify(producer);
+   }
+
+   public void testSend() throws Exception
+   {
+      ServerMessage serverMessage = createStrictMock(ServerMessage.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerProducer producer = createStrictMock(ServerProducer.class);
+      ServerProducerPacketHandler handler = new ServerProducerPacketHandler(producer);
+      producer.send(serverMessage);
+      //expect(producer.getID()).andReturn(999l);
+      ProducerSendMessage message = new ProducerSendMessage(serverMessage);
+      replay(producer, returner, serverMessage);
+      handler.doHandle(message, returner);
+      verify(producer, returner, serverMessage);
+   }
+
+    public void testClose() throws Exception
+   {
+      ServerMessage serverMessage = createStrictMock(ServerMessage.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerProducer producer = createStrictMock(ServerProducer.class);
+      ServerProducerPacketHandler handler = new ServerProducerPacketHandler(producer);
+      producer.close();
+      PacketImpl message = new PacketImpl(PacketImpl.CLOSE);
+      message.setResponseTargetID(1);
+      replay(producer, returner, serverMessage);
+      assertNotNull(handler.doHandle(message, returner));
+      verify(producer, returner, serverMessage);
+   }
+
+   public void testUnsupportedPacket() throws Exception
+   {
+      ServerMessage serverMessage = createStrictMock(ServerMessage.class);
+      PacketReturner returner = createStrictMock(PacketReturner.class);
+      ServerProducer producer = createStrictMock(ServerProducer.class);
+      ServerProducerPacketHandler handler = new ServerProducerPacketHandler(producer);
+      Packet packet = EasyMock.createStrictMock(Packet.class);
+      expect(packet.getType()).andReturn(Byte.MAX_VALUE);
+      replay(producer, returner, serverMessage);
+
+      try
+      {
+         handler.doHandle(packet, returner);
+         fail("should throw exception");
+      }
+      catch (Exception e)
+      {
+         MessagingException messagingException = (MessagingException) e;
+         assertEquals(messagingException.getCode(), MessagingException.UNSUPPORTED_PACKET);
+      }
+
+      verify(producer, returner, serverMessage);
+   }
+}




More information about the jboss-cvs-commits mailing list