[jbpm-commits] JBoss JBPM SVN: r6078 - in jbpm4/trunk/modules: test-base/src/main/java/org/jbpm/test/assertion and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Jan 14 03:33:40 EST 2010


Author: jbarrez
Date: 2010-01-14 03:33:40 -0500 (Thu, 14 Jan 2010)
New Revision: 6078

Modified:
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java
   jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/assertion/CollectionAssertions.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/bpmn/test/gateway/ParallelGatewayMergeTest.java
Log:
Added aditional failing test for nested parallel gateway

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java	2010-01-13 22:18:25 UTC (rev 6077)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayActivity.java	2010-01-14 08:33:40 UTC (rev 6078)
@@ -58,13 +58,13 @@
     
     if (nrOfIncoming == 1) { // no join behaviour needed, save some time and do a fork immediately
       if (LOG.isDebugEnabled()) {
-        LOG.debug("Only one incoming sequence flow found. Executing fork logic");
+        LOG.debug("Only one incoming sequence flow found. Executing fork logic.");
       }
       fork(execution);
     } else { // Join behaviour needed
       
       if (LOG.isDebugEnabled()) {
-        LOG.debug("Multiple incoming sequence flow found. Executing join logic");
+        LOG.debug("Multiple incoming sequence flow found. Executing join logic.");
       }
       join(execution);
       

Modified: jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/assertion/CollectionAssertions.java
===================================================================
--- jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/assertion/CollectionAssertions.java	2010-01-13 22:18:25 UTC (rev 6077)
+++ jbpm4/trunk/modules/test-base/src/main/java/org/jbpm/test/assertion/CollectionAssertions.java	2010-01-14 08:33:40 UTC (rev 6078)
@@ -48,8 +48,8 @@
     
     if (collection1 != null && collection2 != null) {
       
-      Assert.assertEquals("Collection 1 does not have the same number of elements as collection 2 ",
-              collection1.size(), collection2.size());
+      Assert.assertEquals("Collection 1 does not have the same number of elements as collection 2. " +
+              debugCollections(collection1, collection2), collection1.size(), collection2.size());
       
       Iterator<T> it = collection1.iterator();
       while (it.hasNext()) {
@@ -61,5 +61,25 @@
     }
     
   }
+  
+  @SuppressWarnings("unchecked")
+  private static String debugCollections(Collection ... collections) {
+    StringBuilder strb = new StringBuilder();
+    for (int i = 0; i < collections.length; i++) {
+      strb.append("Collection " + (i+1) + ": " + debugCollection(collections[i]) + ". "); 
+    }
+    return strb.toString();
+  }
+  
+  @SuppressWarnings("unchecked")
+  private static String debugCollection(Collection collection) {
+    StringBuilder strb = new StringBuilder();
+    Iterator it = collection.iterator();
+    while (it.hasNext()) {
+      strb.append("'" + it.next() + "', ");
+    }
+    strb.delete(strb.length() - 2, strb.length());
+    return strb.toString();
+  }
 
 }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/bpmn/test/gateway/ParallelGatewayMergeTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/bpmn/test/gateway/ParallelGatewayMergeTest.java	2010-01-13 22:18:25 UTC (rev 6077)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/bpmn/test/gateway/ParallelGatewayMergeTest.java	2010-01-14 08:33:40 UTC (rev 6078)
@@ -80,6 +80,33 @@
     "    <endEvent id='theEnd' />" +
     "  </process>" +
     "</definitions>";
+  
+  /* 
+   * Test process with parallel gateway that has three outgoing sequence flow.
+   * Two of those sequence flow are merged before and split again into three sequence flow.
+   * The one remaining sequence flow, will at last be merged with these three sequence flow,
+   * which means that the outer join has 4 incoming sequence flow.
+   */
+  private static final String TEST_NESTED_MERGE_PROCESS_2 = 
+    "<definitions>" +
+    "  <process id='nestedMerge2' name='parallelNestedMerge2' >" +
+    "    <startEvent id='theStart' />" +
+    "    <sequenceFlow id='flow1' sourceRef='theStart' targetRef='outerFork' />" +
+    "    <parallelGateway id='outerFork' />" +
+    "    <sequenceFlow id='flow2' sourceRef='outerFork' targetRef='wait' />" +
+    "    <sequenceFlow id='flow3' sourceRef='outerFork' targetRef='innerJoin' />" +
+    "    <sequenceFlow id='flow4' sourceRef='outerFork' targetRef='innerJoin' />" +
+    "    <receiveTask id='wait' />" +
+    "    <sequenceFlow id='flow5' sourceRef='wait' targetRef='outerJoin' />" +
+    "    <parallelGateway id='innerJoin' />" +
+    "    <sequenceFlow id='flow6' sourceRef='innerJoin' targetRef='outerJoin' />" +
+    "    <sequenceFlow id='flow7' sourceRef='innerJoin' targetRef='outerJoin' />" +
+    "    <sequenceFlow id='flow8' sourceRef='innerJoin' targetRef='outerJoin' />" +
+    "    <parallelGateway id='outerJoin' />" +
+    "    <sequenceFlow id='flow10' sourceRef='outerJoin' targetRef='theEnd' />" +
+    "    <endEvent id='theEnd' />" +
+    "  </process>" +
+    "</definitions>";
 
   
   public void testSimpleParallelMerge() {
@@ -93,12 +120,21 @@
     deployBpmn2XmlString(TEST_NESTED_MERGE_PROCESS);
     
     ProcessInstance pi = executionService.startProcessInstanceByKey("nestedMerge");
-    
     CollectionAssertions.assertElementsEqual(pi.findActiveActivityNames(), Arrays.asList("wait1", "wait2"));
     
     executionService.signalExecutionById(pi.findActiveExecutionIn("wait1").getId());
     executionService.signalExecutionById(pi.findActiveExecutionIn("wait2").getId());
     assertProcessInstanceEnded(pi);
   }
+  
+  public void testNestedParallelMerge2() {
+    deployBpmn2XmlString(TEST_NESTED_MERGE_PROCESS_2);
+    /*
+    ProcessInstance pi = executionService.startProcessInstanceByKey("nestedMerge2");
+    CollectionAssertions.assertElementsEqual(pi.findActiveActivityNames(), Arrays.asList("wait"));
+    executionService.signalExecutionById(pi.findActiveExecutionIn("wait").getId());
+    assertProcessInstanceEnded(pi);
+    */
+  }
 
 }



More information about the jbpm-commits mailing list