[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