[jbpm-commits] JBoss JBPM SVN: r6032 - in jbpm4/trunk/modules: test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Dec 23 08:17:40 EST 2009


Author: tom.baeyens at jboss.com
Date: 2009-12-23 08:17:40 -0500 (Wed, 23 Dec 2009)
New Revision: 6032

Added:
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/Buzzz.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.exception.process.jpdl.xml
Modified:
   jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
   jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml
   jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml
Log:
JBPM-2695 added jms test with exception that rollsback both process updates and message sending

Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JbpmTestCase.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -118,6 +118,14 @@
     return JmsExtensions.consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
   }
   
+  public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName) {
+    jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, true, Session.AUTO_ACKNOWLEDGE, 1000);
+  }
+
+  public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
+    JmsExtensions.jmsAssertQueueEmpty(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
+  }
+  
   public static void jmsRemoveQueue(String connectionFactoryJndiName, String queueJndiName) {
     JmsExtensions.removeQueue(connectionFactoryJndiName, queueJndiName);
   }

Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/JmsExtensions.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -34,7 +34,7 @@
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import junit.framework.TestCase;
+import junit.framework.AssertionFailedError;
 
 import org.jbpm.api.JbpmException;
 
@@ -157,7 +157,7 @@
         MessageConsumer messageConsumer = queueSession.createConsumer(queue);
         Message message = messageConsumer.receive(timeout);
         if (message==null) {
-          TestCase.fail("no message on queue "+queueJndiName);
+          throw new AssertionFailedError("no message on queue "+queueJndiName);
         }
         return message;
 
@@ -184,4 +184,15 @@
       throw new JbpmException("couldn't receive message from queue: "+e.getMessage(), e);
     }
   }
+
+  public static void jmsAssertQueueEmpty(String connectionFactoryJndiName, String queueJndiName, boolean transacted, int acknowledgeMode, long timeout) {
+    try {
+      consumeMessageFromQueue(connectionFactoryJndiName, queueJndiName, transacted, acknowledgeMode, timeout);
+    } catch (AssertionFailedError e) {
+      if (e.getMessage().startsWith("no message on queue")) {
+        return;
+      }
+    }
+    throw new AssertionFailedError("message available on queue "+queueJndiName);
+  }
 }

Added: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/Buzzz.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/Buzzz.java	                        (rev 0)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/Buzzz.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.jbpm.test.jms;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class Buzzz implements ActivityBehaviour {
+
+  private static final long serialVersionUID = 1L;
+
+  public void execute(ActivityExecution execution) throws Exception {
+    throw new RuntimeException("buzzz");
+  }
+}


Property changes on: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/Buzzz.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java	                        (rev 0)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * 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.jbpm.test.jms;
+
+import junit.framework.Test;
+
+import org.apache.cactus.ServletTestSuite;
+import org.jbpm.test.JbpmTestCase;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class QueueExceptionTest extends JbpmTestCase {
+
+  public static Test suite() {
+    ServletTestSuite servletTestSuite = new ServletTestSuite();
+    servletTestSuite.addTestSuite(QueueTextMessageTest.class);
+    return servletTestSuite;
+  }
+    
+  protected void setUp() throws Exception {
+    super.setUp();  
+    registerDeployment(repositoryService.createDeployment()
+        .addResourceFromClasspath("org/jbpm/test/jms/queue.text.process.jpdl.xml")
+        .deploy());  
+  }
+  
+  public void testQueueMessage() throws Exception {
+    try {
+      executionService.startProcessInstanceByKey("JmsQueueException");
+      fail("expected exception");
+    } catch (Exception e) {
+      // OK
+    }
+
+    jmsAssertQueueEmpty("java:JmsXA", "queue/jbpm-test-queue");
+    
+    assertEquals(0, executionService.createProcessInstanceQuery().list().size());
+  }
+}


Property changes on: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueExceptionTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueMapMessageTest.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -43,7 +43,7 @@
   }
 
   public void testJmsText() throws Exception {
-    executionService.startProcessInstanceByKey("JMS_map_queue");
+    executionService.startProcessInstanceByKey("JmsQueueMap");
     MapMessage mapMessage = (MapMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
     assertTrue(mapMessage.itemExists("x"));
     assertEquals("foo", mapMessage.getObject("x"));

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueObjectMessageTest.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -50,7 +50,7 @@
   public void testQueueMessage() throws Exception {
     Map<String, Object> variables = new HashMap<String, Object>();
     variables.put("object", "this is the object");
-    executionService.startProcessInstanceByKey("JMS_object_queue", variables);
+    executionService.startProcessInstanceByKey("JmsQueueObject", variables);
     ObjectMessage objectMessage = (ObjectMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
     assertEquals("this is the object", objectMessage.getObject());
   }

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/java/org/jbpm/test/jms/QueueTextMessageTest.java	2009-12-23 13:17:40 UTC (rev 6032)
@@ -44,7 +44,7 @@
   }
   
   public void testQueueMessage() throws Exception {
-    executionService.startProcessInstanceByKey("JMS_text_queue");
+    executionService.startProcessInstanceByKey("JmsQueueText");
     TextMessage textMessage = (TextMessage) jmsConsumeMessageFromQueue("java:JmsXA", "queue/jbpm-test-queue");
     assertEquals("This is the body", textMessage.getText());
   }

Added: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.exception.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.exception.process.jpdl.xml	                        (rev 0)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.exception.process.jpdl.xml	2009-12-23 13:17:40 UTC (rev 6032)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process name="JmsQueueException">
+
+  <start g="20,20,48,48">
+    <transition to="send message" />
+  </start>
+
+  <jms name="send message" 
+       connection-factory="java:JmsXA"
+       destination="queue/jbpm-test-queue"
+       g="96,16,83,52">
+    <text>This is the body</text>    
+    <transition to="buzzz" />
+  </jms>
+  
+  <custom name="buzzz"
+          class="org.jbpm.test.jms.Buzzz" 
+          g="352,17,88,52"/>
+
+</process>


Property changes on: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.exception.process.jpdl.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.map.process.jpdl.xml	2009-12-23 13:17:40 UTC (rev 6032)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<process name="JMS_map_queue">
+<process name="JmsQueueMap">
 
   <start g="20,20,48,48">
     <transition to="send message" />

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.object.process.jpdl.xml	2009-12-23 13:17:40 UTC (rev 6032)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<process name="JMS_object_queue">
+<process name="JmsQueueObject">
 
   <start g="20,20,48,48">
     <transition to="send message" />

Modified: jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml
===================================================================
--- jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml	2009-12-23 13:06:30 UTC (rev 6031)
+++ jbpm4/trunk/modules/test-enterprise/test-enterprise-suite/src/test/resources/org/jbpm/test/jms/queue.text.process.jpdl.xml	2009-12-23 13:17:40 UTC (rev 6032)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<process name="JMS_text_queue">
+<process name="JmsQueueText">
 
   <start g="20,20,48,48">
     <transition to="send message" />



More information about the jbpm-commits mailing list