[jbpm-commits] JBoss JBPM SVN: r2490 - in projects/spec/trunk/modules/cts: src/test/java/org/jbpm/test/cts/gateway/exclusive and 4 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Oct 6 13:09:29 EDT 2008
Author: thomas.diesler at jboss.com
Date: 2008-10-06 13:09:29 -0400 (Mon, 06 Oct 2008)
New Revision: 2490
Modified:
projects/spec/trunk/modules/cts/pom.xml
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
Log:
Pass more gateway tests
Modified: projects/spec/trunk/modules/cts/pom.xml
===================================================================
--- projects/spec/trunk/modules/cts/pom.xml 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/pom.xml 2008-10-06 17:09:29 UTC (rev 2490)
@@ -70,11 +70,8 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <exclude>org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java</exclude>
<exclude>org/jbpm/test/cts/node/NodeInputSetTest.java</exclude>
<exclude>org/jbpm/test/cts/node/NodeOutputSetTest.java</exclude>
- <exclude>org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java</exclude>
- <exclude>org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java</exclude>
</excludes>
</configuration>
</plugin>
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/exclusive/ExclusiveGatewayMergeTest.java 2008-10-06 17:09:29 UTC (rev 2490)
@@ -24,23 +24,14 @@
// $Id$
import java.io.IOException;
+import java.util.List;
-import org.jbpm.api.client.SignalListener;
-import org.jbpm.api.model.Message;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Signal;
-import org.jbpm.api.model.Assignment.AssignTime;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Expression.ExpressionLanguage;
import org.jbpm.api.model.Gateway.GatewayType;
-import org.jbpm.api.model.Signal.SignalType;
-import org.jbpm.api.model.builder.EventBuilder;
-import org.jbpm.api.model.builder.MessageBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.ProcessBuilderService;
-import org.jbpm.api.model.builder.TaskBuilder;
-import org.jbpm.api.service.SignalService;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -53,163 +44,31 @@
*/
public class ExclusiveGatewayMergeTest extends CTSTestCase
{
- public void testGateA() throws Exception
+ public void testMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
- // Add a signal listener that sends the other start trigger signal
- SignalService sigManager = SignalService.locateSignalService();
- MergeListener sigListener = new MergeListener(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B"));
- sigManager.addSignalListener(sigListener);
+ // Start the process
+ proc.startProcess();
- try
- {
- // Send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
+ // Wait for the process to end
+ proc.waitForEnd();
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
// Verify the result
- Message endMessage = getMessages().get(0);
- assertNotNull("EndMessage expected", endMessage);
- assertEquals("TaskA", endMessage.getProperty("taskValue").getValue());
+ List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
+ assertEquals(1, endSignals.size());
}
- public void testGateB() throws Exception
- {
- ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
-
- // Add a signal listener that sends the other start trigger signal
- SignalService sigManager = SignalService.locateSignalService();
- MergeListener sigListener = new MergeListener(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B"));
-
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- // Verify the result
- Message endMessage = getMessages().get(0);
- assertNotNull("EndMessage expected", endMessage);
- assertEquals("TaskB", endMessage.getProperty("taskValue").getValue());
- }
-
- public void testInvalidToken() throws Exception
- {
- ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
-
- // Add a signal listener that sends the other start trigger signal
- SignalService sigManager = SignalService.locateSignalService();
- MergeListener sigListener = new MergeListener(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
-
- try
- {
- proc.waitForEnd();
- fail("Expected: Unexpected token from: SequenceFlow[TaskA->Merge]");
- }
- catch (RuntimeException rte)
- {
- // expected
- }
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- // Add a signal listener that sends the other start trigger signal
- sigListener = new MergeListener(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B"));
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
-
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- // Verify the result
- Message endMessage = getMessages().get(0);
- assertNotNull("EndMessage expected", endMessage);
- assertEquals("TaskA", endMessage.getProperty("taskValue").getValue());
- }
-
public ProcessDefinition getProcessDefinition() throws IOException
{
ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
- EventBuilder eventBuilder = procBuilder.addProcess(getName()).addStartEvent("StartA", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "A");
- TaskBuilder taskBuilder = procBuilder.addSequenceFlow("TaskA").addTask("TaskA");
- taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValue");
- taskBuilder.addSequenceFlow("Merge");
- eventBuilder = procBuilder.addStartEvent("StartB", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "B");
- taskBuilder = procBuilder.addSequenceFlow("TaskB").addTask("TaskB");
- taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValue");
- taskBuilder.addSequenceFlow("Merge");
+ procBuilder.addProcess("ExclusiveGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
+ procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskA").addSequenceFlow("Merge");
+ procBuilder.addTask("TaskB").addSequenceFlow("Merge");
procBuilder.addGateway("Merge", GatewayType.Exclusive).addSequenceFlow("End");
- procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
- MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
- msgBuilder.addToRef(getTestID()).addProperty("taskValue", null, true);
+ procBuilder.addEndEvent("End");
return procBuilder.getProcessDefinition();
}
-
- class MergeListener implements SignalListener
- {
- private Signal nextSignal;
-
- public MergeListener(Signal nextSignal)
- {
- this.nextSignal = nextSignal;
- }
-
- public boolean acceptSignal(Signal signal)
- {
- return signal.getSignalType() == SignalType.SYSTEM_GATEWAY_ENTER;
- }
-
- public void catchSignal(Signal signal)
- {
- if (nextSignal != null)
- {
- SignalService sigService = SignalService.locateSignalService();
- sigService.throwSignal(nextSignal);
- nextSignal = null;
- }
- }
- }
}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/inclusive/InclusiveGatewayMergeTest.java 2008-10-06 17:09:29 UTC (rev 2490)
@@ -43,12 +43,12 @@
*/
public class InclusiveGatewayMergeTest extends CTSTestCase
{
- public void testGateA() throws Exception
+ public void testSimpleMerge() throws Exception
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
- // Start the process and send start trigger signal
+ // Start the process
proc.startProcess();
// Wait for the process to end
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/gateway/parallel/ParallelGatewayMergeTest.java 2008-10-06 17:09:29 UTC (rev 2490)
@@ -52,7 +52,7 @@
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
- // Start the process and send start trigger signal
+ // Start the process
proc.startProcess();
// Wait for the process to end
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/simplemerge/SimpleMergeTest.java 2008-10-06 17:09:29 UTC (rev 2490)
@@ -26,17 +26,12 @@
import java.io.IOException;
import java.util.List;
-import org.jbpm.api.client.SignalListener;
-import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.ProcessDefinition;
import org.jbpm.api.model.Signal;
-import org.jbpm.api.model.Event.EventDetailType;
-import org.jbpm.api.model.Signal.SignalType;
-import org.jbpm.api.model.builder.EventBuilder;
+import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.ProcessBuilderService;
-import org.jbpm.api.service.SignalService;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -53,25 +48,12 @@
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
- // Add a signal listener that sends the other start trigger signal
- MergeListener sigListener = new MergeListener(procDef.getName(), new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B"));
- SignalService sigManager = SignalService.locateSignalService();
- sigManager.addSignalListener(sigListener);
+ // Start the process
+ proc.startProcess();
- try
- {
- // Send start trigger signals
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
+ // Wait for the process to end
+ proc.waitForEnd();
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
List<Signal> endSignals = getSignals(Signal.SignalType.SYSTEM_END_EVENT_EXIT);
assertEquals(2, endSignals.size());
}
@@ -79,37 +61,12 @@
public ProcessDefinition getProcessDefinition() throws IOException
{
ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
- EventBuilder eventBuilder = procBuilder.addProcess(getName()).addStartEvent("StartA", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "A");
- eventBuilder = procBuilder.addSequenceFlow("Merge").addStartEvent("StartB", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "B");
- procBuilder.addSequenceFlow("Merge").addGateway("Merge", Gateway.GatewayType.Inclusive).addSequenceFlow("End");
+ procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
+ procBuilder.addGateway("Split", GatewayType.Inclusive).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskA").addSequenceFlow("Merge");
+ procBuilder.addTask("TaskB").addSequenceFlow("Merge");
+ procBuilder.addGateway("Merge", GatewayType.Inclusive).addSequenceFlow("End");
procBuilder.addEndEvent("End");
return procBuilder.getProcessDefinition();
}
-
- class MergeListener implements SignalListener
- {
- private Signal nextSignal;
-
- public MergeListener(String fromRef, Signal nextSignal)
- {
- this.nextSignal = nextSignal;
- }
-
- public boolean acceptSignal(Signal signal)
- {
- return signal.getSignalType() == SignalType.SYSTEM_GATEWAY_ENTER;
- }
-
- public void catchSignal(Signal signal)
- {
- if (nextSignal != null)
- {
- SignalService sigService = SignalService.locateSignalService();
- sigService.throwSignal(nextSignal);
- nextSignal = null;
- }
- }
- }
}
Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-10-06 15:53:38 UTC (rev 2489)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/synchronization/SynchronizationTest.java 2008-10-06 17:09:29 UTC (rev 2490)
@@ -25,22 +25,16 @@
import java.io.IOException;
-import org.jbpm.api.client.SignalListener;
-import org.jbpm.api.model.Gateway;
import org.jbpm.api.model.Message;
import org.jbpm.api.model.Process;
import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.Signal;
import org.jbpm.api.model.Assignment.AssignTime;
import org.jbpm.api.model.Event.EventDetailType;
import org.jbpm.api.model.Expression.ExpressionLanguage;
-import org.jbpm.api.model.Signal.SignalType;
-import org.jbpm.api.model.builder.EventBuilder;
+import org.jbpm.api.model.Gateway.GatewayType;
import org.jbpm.api.model.builder.MessageBuilder;
import org.jbpm.api.model.builder.ProcessBuilder;
import org.jbpm.api.model.builder.ProcessBuilderService;
-import org.jbpm.api.model.builder.TaskBuilder;
-import org.jbpm.api.service.SignalService;
import org.jbpm.api.test.CTSTestCase;
/**
@@ -57,105 +51,13 @@
{
ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
Process proc = procDef.newInstance();
-
- // Add a signal listener that sends the other start trigger signal
- MergeListener sigListener = new MergeListener(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B"));
- SignalService sigManager = SignalService.locateSignalService();
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Start the process and send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
-
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- // Verify the result
- Message endMessage = getMessages().get(0);
- assertEquals("TaskA", endMessage.getProperty("taskValueA").getValue());
- assertEquals("TaskB", endMessage.getProperty("taskValueB").getValue());
- }
-
- public void testMergeTimeout() throws Exception
- {
- ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
-
- // Start the process and send start trigger signal
+
+ // Start the process
proc.startProcess();
- SignalService sigService = SignalService.locateSignalService();
- sigService.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
// Wait for the process to end
- try
- {
- proc.waitForEnd(1000);
- fail("timeout expected");
- }
- catch (RuntimeException rte)
- {
- // expected
- }
- }
+ proc.waitForEnd();
- public void testInvalidToken() throws Exception
- {
- ProcessDefinition procDef = unregisterOnTearDown(getProcessDefinition());
- Process proc = procDef.newInstance();
-
- // Add a signal listener that sends the other start trigger signal
- Signal startTrigger = new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A");
- MergeListener sigListener = new MergeListener(startTrigger);
- SignalService sigManager = SignalService.locateSignalService();
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Start the process and send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
-
- try
- {
- proc.waitForEnd();
- fail("Expected: Unexpected token from: SequenceFlow[TaskA->Merge]");
- }
- catch (RuntimeException rte)
- {
- // expected
- }
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
- // Add a signal listener that sends the other start trigger signal
- startTrigger = new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "B");
- sigListener = new MergeListener(startTrigger);
- sigManager.addSignalListener(sigListener);
-
- try
- {
- // Start the process and send start trigger signal
- proc.startProcess();
- sigManager.throwSignal(new Signal(getTestID(), SignalType.SYSTEM_START_TRIGGER, "A"));
-
- // Wait for the process to end
- proc.waitForEnd();
- }
- finally
- {
- sigManager.removeSignalListener(sigListener);
- }
-
// Verify the result
Message endMessage = getMessages().get(0);
assertEquals("TaskA", endMessage.getProperty("taskValueA").getValue());
@@ -165,45 +67,14 @@
public ProcessDefinition getProcessDefinition() throws IOException
{
ProcessBuilder procBuilder = ProcessBuilderService.locateProcessBuilder();
- EventBuilder eventBuilder = procBuilder.addProcess("Synchronization").addStartEvent("StartA", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "A");
- TaskBuilder taskBuilder = procBuilder.addSequenceFlow("TaskA").addTask("TaskA");
- taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA");
- taskBuilder.addSequenceFlow("Merge");
- eventBuilder = procBuilder.addStartEvent("StartB", EventDetailType.Signal);
- eventBuilder.addSignalRef(SignalType.SYSTEM_START_TRIGGER, "B");
- taskBuilder = procBuilder.addSequenceFlow("TaskB").addTask("TaskB");
- taskBuilder.addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB");
- taskBuilder.addSequenceFlow("Merge");
- procBuilder.addGateway("Merge", Gateway.GatewayType.Parallel).addSequenceFlow("End");
+ procBuilder.addProcess("ParallelGatewayMerge").addStartEvent("Start").addSequenceFlow("Split");
+ procBuilder.addGateway("Split", GatewayType.Parallel).addSequenceFlow("TaskA").addSequenceFlow("TaskB");
+ procBuilder.addTask("TaskA").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskA'", "taskValueA").addSequenceFlow("Merge");
+ procBuilder.addTask("TaskB").addNodeAssignment(AssignTime.Start, ExpressionLanguage.MVEL, "'TaskB'", "taskValueB").addSequenceFlow("Merge");
+ procBuilder.addGateway("Merge", GatewayType.Parallel).addSequenceFlow("End");
procBuilder.addEndEvent("End", EventDetailType.Message).addMessageRef("EndMessage");
MessageBuilder msgBuilder = procBuilder.addProcessMessage("EndMessage");
msgBuilder.addToRef(getTestID()).addProperty("taskValueA", null, true).addProperty("taskValueB", null, true);
return procBuilder.getProcessDefinition();
}
-
- public static class MergeListener implements SignalListener
- {
- private Signal nextSignal;
-
- public MergeListener(Signal nextSignal)
- {
- this.nextSignal = nextSignal;
- }
-
- public boolean acceptSignal(Signal signal)
- {
- return signal.getSignalType() == SignalType.SYSTEM_GATEWAY_ENTER;
- }
-
- public void catchSignal(Signal signal)
- {
- if (nextSignal != null)
- {
- SignalService sigService = SignalService.locateSignalService();
- sigService.throwSignal(nextSignal);
- nextSignal = null;
- }
- }
- }
}
More information about the jbpm-commits
mailing list