[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