[jboss-svn-commits] JBL Code SVN: r6722 - labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 10 09:42:58 EDT 2006
Author: tfennelly
Date: 2006-10-10 09:42:55 -0400 (Tue, 10 Oct 2006)
New Revision: 6722
Added:
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.java
Removed:
labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerTest.java
Log:
Named test incorrectly - needs to end in "UnitTest" verses the standard/default "Test".
Deleted: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerTest.java 2006-10-10 13:31:47 UTC (rev 6721)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerTest.java 2006-10-10 13:42:55 UTC (rev 6722)
@@ -1,196 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.listeners;
-
-import org.jboss.soa.esb.actions.ActionDefinition;
-import org.jboss.soa.esb.actions.ActionDefinitionFactory;
-import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.actions.ActionUtils;
-import org.jboss.soa.esb.actions.BaseTestActionProcessor;
-import org.jboss.soa.esb.helpers.DomElement;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.util.MockNonblockingListener;
-
-import junit.framework.TestCase;
-
-/**
- * AbstractListener tests.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class AbstractListenerTest extends TestCase {
-
- private MockGpListener gpListener;
- private ActionDefinitionFactory factory;
- private DomElement listenerConfig;
- private ActionDefinition action_ActionA;
- private ActionDefinition action_ActionB;
- private ActionDefinition action_ActionC;
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- @Override
- protected void setUp() throws Exception {
- gpListener = new MockGpListener();
- listenerConfig = new DomElement("listenerConfig");
-
- DomElement config = DomElement.fromInputStream(getClass().getResourceAsStream("AbstractListener_ActionConfig.xml"));
- factory = new ActionDefinitionFactory(config);
- action_ActionA = factory.getInstance("ActionA");
- action_ActionB = factory.getInstance("ActionB");
- action_ActionC = factory.getInstance("ActionC");
- assertNotNull(action_ActionA);
- assertNotNull(action_ActionB);
- assertNotNull(action_ActionC);
- }
-
- public void test_BadActionsConfig() throws Exception {
- // Not action config of any description...
- assertActionsConfigException("message1", "No actions configuration specified either on the listener or as a Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST]. Aborting message processing.");
-
- // Bad actions config as an override attachment - wrong type...
- Message message = MessageFactory.getInstance().getMessage();
- message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, new Long(1));
- assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] must be of type java.lang.String. Received [java.lang.Long]. Aborting message processing.");
-
- // Bad actions config as an override attachment - empty...
- message = MessageFactory.getInstance().getMessage();
- message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, " ");
- assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] was specified but with an empty value. Aborting message processing.");
-
- // Bad actions config as an override attachment - unknown action...
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionX");
- assertActionsConfigException("message1", "Bad Listener Configuration. No 'Actions/Action' definition for action [ActionX].");
- }
-
- public void test_ActionsListenerConfig() throws Exception {
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB");
-
- // Run the listener and check that the proper actions were run...
- runListener("message1", null);
- assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
- assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
- assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
- }
-
- public void test_ActionsOverrideConfig() throws Exception {
- Message message = MessageFactory.getInstance().getMessage();
-
- // Set the actions on both the listener config and on the message as an attachment...
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB");
- message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, "ActionA, ActionC");
- ActionUtils.setTaskObject(message, "message1");
-
- // Run the listener and check that it was the attachment actions config that was used...
- runListener(message, null);
- assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
- assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
- assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
- }
-
- public void test_PrematureTermination_By_Exception() throws Exception {
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
-
- ((BaseTestActionProcessor)action_ActionB.getProcessor()).exception = new ActionProcessingException("Premature termination by Exception!");
-
- // Run the listener and check that it failed and raised an appropriate error on the listener...
- runListener("message1", "Premature termination by Exception!");
- assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
- assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
- assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
- }
-
- public void test_PrematureTermination_By_Null() throws Exception {
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
-
- ((BaseTestActionProcessor)action_ActionB.getProcessor()).returnNull = true;
-
- // Run the listener and check that it failed and raised an appropriate error on the listener...
- runListener("message1", "Premature termination of action processing pipeline [[ActionA, ActionB, ActionC]]. ActionProcessor [org.jboss.soa.esb.actions.TestActionProcessor1] returned a null message result on processing of action [ActionB].");
- assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
- assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
- assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
- }
-
- public void test_Last_Action_Returning_Null_OK() throws Exception {
- listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
-
- ((BaseTestActionProcessor)action_ActionC.getProcessor()).returnNull = true;
-
- runListener("message1", null);
- assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
- assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
- assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
- }
-
- private void assertActionsConfigException(Object message, String expectedException) throws Exception {
- MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
-
- listener.messages = new Object[] {message};
- gpListener.continueLooping = true;
- listener.run();
-
- assertEquals(0, listener.messagesCompleted.size());
- assertEquals(1, listener.messagesInError.size());
- assertEquals(message, listener.messagesInError.get(0).initialMsg);
- assertEquals(null, listener.messagesInError.get(0).processor);
- assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
- }
-
- private MockNonblockingListener runListener(Object message, String expectedException) throws Exception {
- MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
-
- listener.messages = new Object[] {message};
- gpListener.continueLooping = true;
- listener.run();
-
- if(expectedException == null) {
- assertEquals(1, listener.messagesCompleted.size());
- assertEquals(0, listener.messagesInError.size());
- assertEquals(message, listener.messagesCompleted.get(0));
- } else {
- assertEquals(0, listener.messagesCompleted.size());
- assertEquals(1, listener.messagesInError.size());
- assertEquals(message, listener.messagesInError.get(0).initialMsg);
- assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
- }
-
- return listener;
- }
-
- /**
- * Overriding the GpListener to get control over the continueLooping method.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
- private class MockGpListener extends GpListener {
- private boolean continueLooping = true;
-
- public boolean continueLooping() {
- try {
- return continueLooping;
- } finally {
- continueLooping = false;
- }
- }
- }
-}
Added: labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.java 2006-10-10 13:31:47 UTC (rev 6721)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/listeners/AbstractListenerUnitTest.java 2006-10-10 13:42:55 UTC (rev 6722)
@@ -0,0 +1,196 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.esb.listeners;
+
+import org.jboss.soa.esb.actions.ActionDefinition;
+import org.jboss.soa.esb.actions.ActionDefinitionFactory;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.util.MockNonblockingListener;
+
+import junit.framework.TestCase;
+
+/**
+ * AbstractListener tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class AbstractListenerUnitTest extends TestCase {
+
+ private MockGpListener gpListener;
+ private ActionDefinitionFactory factory;
+ private DomElement listenerConfig;
+ private ActionDefinition action_ActionA;
+ private ActionDefinition action_ActionB;
+ private ActionDefinition action_ActionC;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ gpListener = new MockGpListener();
+ listenerConfig = new DomElement("listenerConfig");
+
+ DomElement config = DomElement.fromInputStream(getClass().getResourceAsStream("AbstractListener_ActionConfig.xml"));
+ factory = new ActionDefinitionFactory(config);
+ action_ActionA = factory.getInstance("ActionA");
+ action_ActionB = factory.getInstance("ActionB");
+ action_ActionC = factory.getInstance("ActionC");
+ assertNotNull(action_ActionA);
+ assertNotNull(action_ActionB);
+ assertNotNull(action_ActionC);
+ }
+
+ public void test_BadActionsConfig() throws Exception {
+ // Not action config of any description...
+ assertActionsConfigException("message1", "No actions configuration specified either on the listener or as a Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST]. Aborting message processing.");
+
+ // Bad actions config as an override attachment - wrong type...
+ Message message = MessageFactory.getInstance().getMessage();
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, new Long(1));
+ assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] must be of type java.lang.String. Received [java.lang.Long]. Aborting message processing.");
+
+ // Bad actions config as an override attachment - empty...
+ message = MessageFactory.getInstance().getMessage();
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, " ");
+ assertActionsConfigException(message, "Message attachement [MESSAGE_PROCESSING_ACTIONS_LIST] was specified but with an empty value. Aborting message processing.");
+
+ // Bad actions config as an override attachment - unknown action...
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionX");
+ assertActionsConfigException("message1", "Bad Listener Configuration. No 'Actions/Action' definition for action [ActionX].");
+ }
+
+ public void test_ActionsListenerConfig() throws Exception {
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB");
+
+ // Run the listener and check that the proper actions were run...
+ runListener("message1", null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_ActionsOverrideConfig() throws Exception {
+ Message message = MessageFactory.getInstance().getMessage();
+
+ // Set the actions on both the listener config and on the message as an attachment...
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB");
+ message.getAttachment().put(AbstractListener.MESSAGE_PROCESSING_ACTIONS_LIST, "ActionA, ActionC");
+ ActionUtils.setTaskObject(message, "message1");
+
+ // Run the listener and check that it was the attachment actions config that was used...
+ runListener(message, null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_PrematureTermination_By_Exception() throws Exception {
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionB.getProcessor()).exception = new ActionProcessingException("Premature termination by Exception!");
+
+ // Run the listener and check that it failed and raised an appropriate error on the listener...
+ runListener("message1", "Premature termination by Exception!");
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_PrematureTermination_By_Null() throws Exception {
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionB.getProcessor()).returnNull = true;
+
+ // Run the listener and check that it failed and raised an appropriate error on the listener...
+ runListener("message1", "Premature termination of action processing pipeline [[ActionA, ActionB, ActionC]]. ActionProcessor [org.jboss.soa.esb.actions.TestActionProcessor1] returned a null message result on processing of action [ActionB].");
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(0, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ public void test_Last_Action_Returning_Null_OK() throws Exception {
+ listenerConfig.setAttr(GpListener.PARM_ACTIONS, "ActionA, ActionB, ActionC");
+
+ ((BaseTestActionProcessor)action_ActionC.getProcessor()).returnNull = true;
+
+ runListener("message1", null);
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionA.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionB.getProcessor()).processedMessages.size());
+ assertEquals(1, ((BaseTestActionProcessor)action_ActionC.getProcessor()).processedMessages.size());
+ }
+
+ private void assertActionsConfigException(Object message, String expectedException) throws Exception {
+ MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
+
+ listener.messages = new Object[] {message};
+ gpListener.continueLooping = true;
+ listener.run();
+
+ assertEquals(0, listener.messagesCompleted.size());
+ assertEquals(1, listener.messagesInError.size());
+ assertEquals(message, listener.messagesInError.get(0).initialMsg);
+ assertEquals(null, listener.messagesInError.get(0).processor);
+ assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
+ }
+
+ private MockNonblockingListener runListener(Object message, String expectedException) throws Exception {
+ MockNonblockingListener listener = new MockNonblockingListener(gpListener, listenerConfig, factory);
+
+ listener.messages = new Object[] {message};
+ gpListener.continueLooping = true;
+ listener.run();
+
+ if(expectedException == null) {
+ assertEquals(1, listener.messagesCompleted.size());
+ assertEquals(0, listener.messagesInError.size());
+ assertEquals(message, listener.messagesCompleted.get(0));
+ } else {
+ assertEquals(0, listener.messagesCompleted.size());
+ assertEquals(1, listener.messagesInError.size());
+ assertEquals(message, listener.messagesInError.get(0).initialMsg);
+ assertEquals(expectedException, listener.messagesInError.get(0).error.getMessage());
+ }
+
+ return listener;
+ }
+
+ /**
+ * Overriding the GpListener to get control over the continueLooping method.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+ private class MockGpListener extends GpListener {
+ private boolean continueLooping = true;
+
+ public boolean continueLooping() {
+ try {
+ return continueLooping;
+ } finally {
+ continueLooping = false;
+ }
+ }
+ }
+}
More information about the jboss-svn-commits
mailing list