This is an automated email from the ASF dual-hosted git repository.
egonzalez pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 1aec3ea41c [incubator-kie-issues-1131] v7 migration to code generation
(#3627)
1aec3ea41c is described below
commit 1aec3ea41c422f407ca7415bd15503513eddf3b2
Author: Abhiram Gundala <[email protected]>
AuthorDate: Thu Aug 29 04:34:10 2024 -0400
[incubator-kie-issues-1131] v7 migration to code generation (#3627)
---
.../src/test/java/org/jbpm/bpmn2/FlowTest.java | 782 ++++++++++-----------
1 file changed, 356 insertions(+), 426 deletions(-)
diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
index a9a088329f..467c1fbf11 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
@@ -35,6 +35,10 @@ import org.jbpm.bpmn2.flow.ExclusiveSplitDefaultModel;
import org.jbpm.bpmn2.flow.ExclusiveSplitDefaultNoConditionModel;
import org.jbpm.bpmn2.flow.ExclusiveSplitDefaultNoConditionProcess;
import org.jbpm.bpmn2.flow.ExclusiveSplitDefaultProcess;
+import org.jbpm.bpmn2.flow.ExclusiveSplitModel;
+import org.jbpm.bpmn2.flow.ExclusiveSplitPriorityModel;
+import org.jbpm.bpmn2.flow.ExclusiveSplitPriorityProcess;
+import org.jbpm.bpmn2.flow.ExclusiveSplitProcess;
import org.jbpm.bpmn2.flow.ExclusiveSplitXPathAdvancedModel;
import org.jbpm.bpmn2.flow.ExclusiveSplitXPathAdvancedProcess;
import org.jbpm.bpmn2.flow.ExclusiveSplitXPathAdvancedVarsNotSignaledModel;
@@ -43,11 +47,53 @@ import
org.jbpm.bpmn2.flow.ExclusiveSplitXPathAdvancedWithVarsModel;
import org.jbpm.bpmn2.flow.ExclusiveSplitXPathAdvancedWithVarsProcess;
import org.jbpm.bpmn2.flow.GatewayTestModel;
import org.jbpm.bpmn2.flow.GatewayTestProcess;
+import org.jbpm.bpmn2.flow.InclusiveGatewayNestedModel;
+import org.jbpm.bpmn2.flow.InclusiveGatewayNestedProcess;
+import org.jbpm.bpmn2.flow.InclusiveGatewayWithDefaultModel;
+import org.jbpm.bpmn2.flow.InclusiveGatewayWithDefaultProcess;
+import org.jbpm.bpmn2.flow.InclusiveGatewayWithHumanTasksProcessModel;
+import org.jbpm.bpmn2.flow.InclusiveGatewayWithHumanTasksProcessProcess;
+import org.jbpm.bpmn2.flow.InclusiveNestedInParallelNestedInExclusiveModel;
+import org.jbpm.bpmn2.flow.InclusiveNestedInParallelNestedInExclusiveProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinEmbeddedModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinEmbeddedProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinExtraPathModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinExtraPathProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinLoop2Model;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinLoop2Process;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinLoopModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinLoopProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinNestedModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinNestedProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithEndModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithEndProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithParallelModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithParallelProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithTimerModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinWithTimerProcess;
import org.jbpm.bpmn2.flow.InclusiveSplitDefaultModel;
import org.jbpm.bpmn2.flow.InclusiveSplitDefaultProcess;
+import org.jbpm.bpmn2.flow.InclusiveSplitModel;
+import org.jbpm.bpmn2.flow.InclusiveSplitProcess;
+import org.jbpm.bpmn2.flow.MultiConnEnabledModel;
+import org.jbpm.bpmn2.flow.MultiConnEnabledProcess;
+import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessModel;
+import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessProcess;
+import
org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondModel;
+import
org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondProcess;
+import
org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputModel;
+import
org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputProcess;
+import org.jbpm.bpmn2.flow.MultiInstanceLoopNumberingModel;
+import org.jbpm.bpmn2.flow.MultiInstanceLoopNumberingProcess;
+import org.jbpm.bpmn2.flow.MultipleGatewaysProcessModel;
+import org.jbpm.bpmn2.flow.MultipleGatewaysProcessProcess;
import org.jbpm.bpmn2.loop.MultiInstanceLoopCharacteristicsTaskModel;
import org.jbpm.bpmn2.loop.MultiInstanceLoopCharacteristicsTaskProcess;
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
+import org.jbpm.bpmn2.timer.ParallelSplitWithTimerProcessModel;
+import org.jbpm.bpmn2.timer.ParallelSplitWithTimerProcessProcess;
import org.jbpm.process.core.context.variable.VariableScope;
import org.jbpm.process.instance.InternalProcessRuntime;
import org.jbpm.process.instance.context.variable.VariableScopeInstance;
@@ -67,7 +113,6 @@ import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;
import org.kie.api.command.ExecutableCommand;
-import org.kie.api.definition.process.WorkflowElementIdentifier;
import org.kie.api.event.process.ProcessNodeTriggeredEvent;
import org.kie.api.event.process.ProcessStartedEvent;
import org.kie.api.runtime.Context;
@@ -82,6 +127,7 @@ import
org.kie.kogito.internal.process.runtime.KogitoWorkItem;
import org.kie.kogito.internal.process.runtime.KogitoWorkItemManager;
import org.kie.kogito.process.Process;
import org.kie.kogito.process.ProcessInstance;
+import org.kie.kogito.process.impl.Sig;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -113,17 +159,17 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testExclusiveSplit() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-ExclusiveSplit.bpmn2");
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Email",
- new SystemOutWorkItemHandler());
- Map<String, Object> params = new HashMap<>();
- params.put("x", "First");
- params.put("y", "Second");
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "ExclusiveSplit", params);
- assertProcessInstanceCompleted(processInstance);
+ public void testExclusiveSplit() {
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerHandler(app, "Email", new
SystemOutWorkItemHandler());
+ org.kie.kogito.process.Process<ExclusiveSplitModel> definition =
ExclusiveSplitProcess.newProcess(app);
+ ExclusiveSplitModel model = definition.createModel();
+ model.setX("First");
+ model.setY("Second");
+ ProcessInstance<ExclusiveSplitModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -209,17 +255,16 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testExclusiveSplitPriority() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-ExclusiveSplitPriority.bpmn2");
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Email",
- new SystemOutWorkItemHandler());
- Map<String, Object> params = new HashMap<>();
- params.put("x", "First");
- params.put("y", "Second");
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "ExclusiveSplitPriority", params);
- assertProcessInstanceCompleted(processInstance);
-
+ public void testExclusiveSplitPriority() {
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerHandler(app, "Email", new
SystemOutWorkItemHandler());
+ org.kie.kogito.process.Process<ExclusiveSplitPriorityModel> definition
= ExclusiveSplitPriorityProcess.newProcess(app);
+ ExclusiveSplitPriorityModel model = definition.createModel();
+ model.setX("First");
+ model.setY("Second");
+ ProcessInstance<ExclusiveSplitPriorityModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -267,265 +312,205 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveSplit() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplit.bpmn2");
- Map<String, Object> params = new HashMap<>();
- params.put("x", 15);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplit", params);
- assertProcessInstanceCompleted(processInstance);
-
+ public void testInclusiveSplit() {
+ Application app = ProcessTestHelper.newApplication();
+ org.kie.kogito.process.Process<InclusiveSplitModel> definition =
InclusiveSplitProcess.newProcess(app);
+ InclusiveSplitModel model = definition.createModel();
+ model.setX(15);
+ ProcessInstance<InclusiveSplitModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitDefaultConnection() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveGatewayWithDefault.bpmn2");
- Map<String, Object> params = new HashMap<>();
- params.put("test", "c");
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveGatewayWithDefault", params);
- assertProcessInstanceCompleted(processInstance);
-
+ public void testInclusiveSplitDefaultConnection() {
+ Application app = ProcessTestHelper.newApplication();
+ org.kie.kogito.process.Process<InclusiveGatewayWithDefaultModel>
definition = InclusiveGatewayWithDefaultProcess.newProcess(app);
+ InclusiveGatewayWithDefaultModel model = definition.createModel();
+ model.setTest("c");
+ ProcessInstance<InclusiveGatewayWithDefaultModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoin() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoin.bpmn2");
+ public void testInclusiveSplitAndJoin() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 15);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoin", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinModel> definition
= InclusiveSplitAndJoinProcess.newProcess(app);
+ InclusiveSplitAndJoinModel model = definition.createModel();
+ model.setX(15);
+ ProcessInstance<InclusiveSplitAndJoinModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(2);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinLoop() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinLoop.bpmn2");
+ public void testInclusiveSplitAndJoinLoop() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 21);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinLoop", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinLoopModel>
definition = InclusiveSplitAndJoinLoopProcess.newProcess(app);
+ InclusiveSplitAndJoinLoopModel model = definition.createModel();
+ model.setX(21);
+ ProcessInstance<InclusiveSplitAndJoinLoopModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(3);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinLoop2() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinLoop2.bpmn2");
+ public void testInclusiveSplitAndJoinLoop2() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 21);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinLoop2", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinLoop2Model>
definition = InclusiveSplitAndJoinLoop2Process.newProcess(app);
+ InclusiveSplitAndJoinLoop2Model model = definition.createModel();
+ model.setX(21);
+ ProcessInstance<InclusiveSplitAndJoinLoop2Model> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(3);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinNested() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinNested.bpmn2");
+ public void testInclusiveSplitAndJoinNested() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 15);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinNested", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinNestedModel>
definition = InclusiveSplitAndJoinNestedProcess.newProcess(app);
+ InclusiveSplitAndJoinNestedModel model = definition.createModel();
+ model.setX(15);
+ ProcessInstance<InclusiveSplitAndJoinNestedModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(2);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
-
activeWorkItems = workItemHandler.getWorkItems();
assertThat(activeWorkItems).hasSize(2);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinEmbedded() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinEmbedded.bpmn2");
+ public void testInclusiveSplitAndJoinEmbedded() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 15);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinEmbedded", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinEmbeddedModel>
definition = InclusiveSplitAndJoinEmbeddedProcess.newProcess(app);
+ InclusiveSplitAndJoinEmbeddedModel model = definition.createModel();
+ model.setX(15);
+ ProcessInstance<InclusiveSplitAndJoinEmbeddedModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(2);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinWithParallel() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinWithParallel.bpmn2");
+ public void testInclusiveSplitAndJoinWithParallel() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 25);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinWithParallel", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinWithParallelModel>
definition = InclusiveSplitAndJoinWithParallelProcess.newProcess(app);
+ InclusiveSplitAndJoinWithParallelModel model =
definition.createModel();
+ model.setX(25);
+ ProcessInstance<InclusiveSplitAndJoinWithParallelModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(4);
-
for (KogitoWorkItem wi : activeWorkItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinWithEnd() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinWithEnd.bpmn2");
+ public void testInclusiveSplitAndJoinWithEnd() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 25);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinWithEnd", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinWithEndModel>
definition = InclusiveSplitAndJoinWithEndProcess.newProcess(app);
+ InclusiveSplitAndJoinWithEndModel model = definition.createModel();
+ model.setX(25);
+ ProcessInstance<InclusiveSplitAndJoinWithEndModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(3);
-
for (int i = 0; i < 2; i++) {
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(i).getStringId(), null);
+
processInstance.completeWorkItem(activeWorkItems.get(i).getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(2).getStringId(), null);
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(activeWorkItems.get(2).getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@Timeout(10)
public void testInclusiveSplitAndJoinWithTimer() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("timer", 2);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinWithTimer.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 15);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinWithTimer", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinWithTimerModel>
definition = InclusiveSplitAndJoinWithTimerProcess.newProcess(app);
+ InclusiveSplitAndJoinWithTimerModel model = definition.createModel();
+ model.setX(15);
+ ProcessInstance<InclusiveSplitAndJoinWithTimerModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(1);
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(0).getStringId(), null);
-
+ processInstance.completeWorkItem(activeWorkItems.get(0).getStringId(),
null);
countDownListener.waitTillCompleted();
- assertProcessInstanceActive(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
activeWorkItems = workItemHandler.getWorkItems();
assertThat(activeWorkItems).hasSize(2);
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(0).getStringId(), null);
- assertProcessInstanceActive(processInstance);
-
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(1).getStringId(), null);
- assertProcessInstanceFinished(processInstance, kruntime);
-
+ processInstance.completeWorkItem(activeWorkItems.get(0).getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(activeWorkItems.get(1).getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testInclusiveSplitAndJoinExtraPath() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveSplitAndJoinExtraPath.bpmn2");
+ public void testInclusiveSplitAndJoinExtraPath() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
-
- Map<String, Object> params = new HashMap<>();
- params.put("x", 25);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "InclusiveSplitAndJoinExtraPath", params);
-
- kruntime.signalEvent("signal", null);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ org.kie.kogito.process.Process<InclusiveSplitAndJoinExtraPathModel>
definition = InclusiveSplitAndJoinExtraPathProcess.newProcess(app);
+ InclusiveSplitAndJoinExtraPathModel model = definition.createModel();
+ model.setX(25);
+ ProcessInstance<InclusiveSplitAndJoinExtraPathModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+ processInstance.send(Sig.of("signal", null));
List<KogitoWorkItem> activeWorkItems = workItemHandler.getWorkItems();
-
assertThat(activeWorkItems).hasSize(4);
-
for (int i = 0; i < 3; i++) {
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(i).getStringId(), null);
+
processInstance.completeWorkItem(activeWorkItems.get(i).getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
- kruntime.getKogitoWorkItemManager().completeWorkItem(
- activeWorkItems.get(3).getStringId(), null);
- assertProcessInstanceFinished(processInstance, kruntime);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(activeWorkItems.get(3).getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -542,12 +527,10 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveParallelExclusiveSplitNoLoop() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveNestedInParallelNestedInExclusive.bpmn2");
-
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI",
new SystemOutWorkItemHandler());
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2",
new SystemOutWorkItemHandler() {
-
+ public void testInclusiveParallelExclusiveSplitNoLoop() {
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerHandler(app, "testWI", new
SystemOutWorkItemHandler());
+ ProcessTestHelper.registerHandler(app, "testWI2", new
SystemOutWorkItemHandler() {
@Override
public void executeWorkItem(KogitoWorkItem workItem,
KogitoWorkItemManager manager) {
Integer x = (Integer) workItem.getParameter("input1");
@@ -556,29 +539,25 @@ public class FlowTest extends JbpmBpmn2TestCase {
results.put("output1", x);
manager.completeWorkItem(workItem.getStringId(), results);
}
-
});
final Map<String, Integer> nodeInstanceExecutionCounter = new
HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
- logger.info(event.getNodeInstance().getNodeName());
Integer value =
nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName());
if (value == null) {
value = 0;
}
-
value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}
-
});
- Map<String, Object> params = new HashMap<>();
- params.put("x", 0);
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveNestedInParallelNestedInExclusive", params);
- assertProcessInstanceCompleted(processInstance);
-
+
org.kie.kogito.process.Process<InclusiveNestedInParallelNestedInExclusiveModel>
definition = InclusiveNestedInParallelNestedInExclusiveProcess.newProcess(app);
+ InclusiveNestedInParallelNestedInExclusiveModel model =
definition.createModel();
+ model.setX(0);
+ ProcessInstance<InclusiveNestedInParallelNestedInExclusiveModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(nodeInstanceExecutionCounter).hasSize(12);
assertThat((int)
nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int)
nodeInstanceExecutionCounter.get("XORGateway-converging")).isEqualTo(1);
@@ -595,11 +574,10 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveParallelExclusiveSplitLoop() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveNestedInParallelNestedInExclusive.bpmn2");
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI",
new SystemOutWorkItemHandler());
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2",
new SystemOutWorkItemHandler() {
-
+ public void testInclusiveParallelExclusiveSplitLoop() {
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerHandler(app, "testWI", new
SystemOutWorkItemHandler());
+ ProcessTestHelper.registerHandler(app, "testWI2", new
SystemOutWorkItemHandler() {
@Override
public void executeWorkItem(KogitoWorkItem workItem,
KogitoWorkItemManager manager) {
Integer x = (Integer) workItem.getParameter("input1");
@@ -608,28 +586,25 @@ public class FlowTest extends JbpmBpmn2TestCase {
results.put("output1", x);
manager.completeWorkItem(workItem.getStringId(), results);
}
-
});
final Map<String, Integer> nodeInstanceExecutionCounter = new
HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
Integer value =
nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName());
if (value == null) {
value = 0;
}
-
value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}
-
});
- Map<String, Object> params = new HashMap<>();
- params.put("x", -1);
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveNestedInParallelNestedInExclusive", params);
- assertProcessInstanceCompleted(processInstance);
-
+
org.kie.kogito.process.Process<InclusiveNestedInParallelNestedInExclusiveModel>
definition = InclusiveNestedInParallelNestedInExclusiveProcess.newProcess(app);
+ InclusiveNestedInParallelNestedInExclusiveModel model =
definition.createModel();
+ model.setX(-1);
+ ProcessInstance<InclusiveNestedInParallelNestedInExclusiveModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(nodeInstanceExecutionCounter).hasSize(12);
assertThat((int)
nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int)
nodeInstanceExecutionCounter.get("XORGateway-converging")).isEqualTo(2);
@@ -646,13 +621,11 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveParallelExclusiveSplitNoLoopAsync() throws
Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveNestedInParallelNestedInExclusive.bpmn2");
-
+ public void testInclusiveParallelExclusiveSplitNoLoopAsync() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI",
handler);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2",
new SystemOutWorkItemHandler() {
-
+ ProcessTestHelper.registerHandler(app, "testWI", handler);
+ ProcessTestHelper.registerHandler(app, "testWI2", new
SystemOutWorkItemHandler() {
@Override
public void executeWorkItem(KogitoWorkItem workItem,
KogitoWorkItemManager manager) {
Integer x = (Integer) workItem.getParameter("input1");
@@ -661,44 +634,37 @@ public class FlowTest extends JbpmBpmn2TestCase {
results.put("output1", x);
manager.completeWorkItem(workItem.getStringId(), results);
}
-
});
final Map<String, Integer> nodeInstanceExecutionCounter = new
HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
Integer value =
nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName());
if (value == null) {
- value = new Integer(0);
+ value = 0;
}
-
value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}
-
});
- Map<String, Object> params = new HashMap<>();
- params.put("x", 0);
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveNestedInParallelNestedInExclusive", params);
- assertProcessInstanceActive(processInstance);
-
+
org.kie.kogito.process.Process<InclusiveNestedInParallelNestedInExclusiveModel>
definition = InclusiveNestedInParallelNestedInExclusiveProcess.newProcess(app);
+ InclusiveNestedInParallelNestedInExclusiveModel model =
definition.createModel();
+ model.setX(0);
+ ProcessInstance<InclusiveNestedInParallelNestedInExclusiveModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
List<KogitoWorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(2);
- // complete work items within OR gateway
- for (KogitoWorkItem KogitoWorkItem : workItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(KogitoWorkItem.getStringId(),
null);
+ for (KogitoWorkItem workItem : workItems) {
+ processInstance.completeWorkItem(workItem.getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(1);
- // complete last KogitoWorkItem after AND gateway
- for (KogitoWorkItem KogitoWorkItem : workItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(KogitoWorkItem.getStringId(),
null);
+ for (KogitoWorkItem workItem : workItems) {
+ processInstance.completeWorkItem(workItem.getStringId(), null);
}
- assertProcessInstanceCompleted(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(nodeInstanceExecutionCounter).hasSize(12);
assertThat((int)
nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int)
nodeInstanceExecutionCounter.get("XORGateway-converging")).isEqualTo(1);
@@ -715,13 +681,11 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveParallelExclusiveSplitLoopAsync() throws
Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveNestedInParallelNestedInExclusive.bpmn2");
-
+ public void testInclusiveParallelExclusiveSplitLoopAsync() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI",
handler);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2",
new SystemOutWorkItemHandler() {
-
+ ProcessTestHelper.registerHandler(app, "testWI", handler);
+ ProcessTestHelper.registerHandler(app, "testWI2", new
SystemOutWorkItemHandler() {
@Override
public void executeWorkItem(KogitoWorkItem workItem,
KogitoWorkItemManager manager) {
Integer x = (Integer) workItem.getParameter("input1");
@@ -730,52 +694,43 @@ public class FlowTest extends JbpmBpmn2TestCase {
results.put("output1", x);
manager.completeWorkItem(workItem.getStringId(), results);
}
-
});
final Map<String, Integer> nodeInstanceExecutionCounter = new
HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
Integer value =
nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName());
if (value == null) {
value = 0;
}
-
value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}
-
});
- Map<String, Object> params = new HashMap<>();
- params.put("x", -1);
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveNestedInParallelNestedInExclusive", params);
- assertProcessInstanceActive(processInstance);
-
+
org.kie.kogito.process.Process<InclusiveNestedInParallelNestedInExclusiveModel>
definition = InclusiveNestedInParallelNestedInExclusiveProcess.newProcess(app);
+ InclusiveNestedInParallelNestedInExclusiveModel model =
definition.createModel();
+ model.setX(-1);
+ ProcessInstance<InclusiveNestedInParallelNestedInExclusiveModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
List<KogitoWorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(2);
- // complete work items within OR gateway
- for (KogitoWorkItem KogitoWorkItem : workItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(KogitoWorkItem.getStringId(),
null);
+ for (KogitoWorkItem workItem : workItems) {
+ processInstance.completeWorkItem(workItem.getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(2);
- // complete work items within OR gateway
- for (KogitoWorkItem KogitoWorkItem : workItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(KogitoWorkItem.getStringId(),
null);
+ for (KogitoWorkItem workItem : workItems) {
+ processInstance.completeWorkItem(workItem.getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(1);
- // complete last KogitoWorkItem after AND gateway
- for (KogitoWorkItem KogitoWorkItem : workItems) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(KogitoWorkItem.getStringId(),
null);
+ for (KogitoWorkItem workItem : workItems) {
+ processInstance.completeWorkItem(workItem.getStringId(), null);
}
- assertProcessInstanceCompleted(processInstance);
-
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(nodeInstanceExecutionCounter).hasSize(12);
assertThat((int)
nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int)
nodeInstanceExecutionCounter.get("XORGateway-converging")).isEqualTo(2);
@@ -792,31 +747,29 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveSplitNested() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveGatewayNested.bpmn2");
-
+ public void testInclusiveSplitNested() {
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler handler = new TestWorkItemHandler();
TestWorkItemHandler handler2 = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI",
handler);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2",
handler2);
- Map<String, Object> params = new HashMap<>();
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveGatewayNested", params);
-
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(),
null);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler2.getWorkItem().getStringId(),
null);
- assertProcessInstanceActive(processInstance);
-
+ ProcessTestHelper.registerHandler(app, "testWI", handler);
+ ProcessTestHelper.registerHandler(app, "testWI2", handler2);
+ org.kie.kogito.process.Process<InclusiveGatewayNestedModel> definition
= InclusiveGatewayNestedProcess.newProcess(app);
+ InclusiveGatewayNestedModel model = definition.createModel();
+ ProcessInstance<InclusiveGatewayNestedModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(handler.getWorkItem().getStringId(),
null);
+ processInstance.completeWorkItem(handler2.getWorkItem().getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
List<KogitoWorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(2);
-
for (KogitoWorkItem wi : workItems) {
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(wi.getStringId(), null);
}
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(),
null);
- assertProcessInstanceCompleted(processInstance);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(handler.getWorkItem().getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -1005,55 +958,49 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testInclusiveJoinWithLoopAndHumanTasks() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-InclusiveGatewayWithHumanTasksProcess.bpmn2");
-
+ public void testInclusiveJoinWithLoopAndHumanTasks() {
+ Application app = ProcessTestHelper.newApplication();
final Map<String, Integer> nodeInstanceExecutionCounter = new
HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
- logger.info("{} {}", event.getNodeInstance().getNodeName(),
((NodeInstanceImpl) event.getNodeInstance()).getLevel());
Integer value =
nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName());
if (value == null) {
value = 0;
}
-
value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}
-
});
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
- Map<String, Object> params = new HashMap<>();
- params.put("firstXor", true);
- params.put("secondXor", true);
- params.put("thirdXor", true);
- KogitoProcessInstance processInstance =
kruntime.startProcess("InclusiveGatewayWithHumanTasksProcess", params);
- // simulate completion of first task
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(),
null);
- assertProcessInstanceActive(processInstance);
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+
org.kie.kogito.process.Process<InclusiveGatewayWithHumanTasksProcessModel>
definition = InclusiveGatewayWithHumanTasksProcessProcess.newProcess(app);
+ InclusiveGatewayWithHumanTasksProcessModel model =
definition.createModel();
+ model.setFirstXor(true);
+ model.setSecondXor(true);
+ model.setThirdXor(true);
+ ProcessInstance<InclusiveGatewayWithHumanTasksProcessModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(handler.getWorkItem().getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
List<KogitoWorkItem> workItems = handler.getWorkItems();
assertThat(workItems).isNotNull().hasSize(2);
-
KogitoWorkItem remainingWork = null;
for (KogitoWorkItem wi : workItems) {
- assertProcessInstanceActive(processInstance);
- // complete second task that will trigger converging OR gateway
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
if (wi.getParameter("NodeName").equals("HT Form2")) {
-
kruntime.getKogitoWorkItemManager().completeWorkItem(wi.getStringId(), null);
+ processInstance.completeWorkItem(wi.getStringId(), null);
} else {
remainingWork = wi;
}
}
-
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(remainingWork.getStringId(),
null);
- assertProcessInstanceActive(processInstance);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(),
null);
- assertProcessInstanceCompleted(processInstance);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ assertThat(remainingWork).isNotNull();
+ processInstance.completeWorkItem(remainingWork.getStringId(), null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.completeWorkItem(handler.getWorkItem().getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(nodeInstanceExecutionCounter).hasSize(13);
assertThat((int)
nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int) nodeInstanceExecutionCounter.get("HT
Form1")).isEqualTo(1);
@@ -1071,50 +1018,48 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testMultiInstanceLoopCharacteristicsProcess() throws Exception
{
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultiInstanceLoopCharacteristicsProcess.bpmn2");
- Map<String, Object> params = new HashMap<>();
+ public void testMultiInstanceLoopCharacteristicsProcess() {
+ Application app = ProcessTestHelper.newApplication();
+ TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+
org.kie.kogito.process.Process<MultiInstanceLoopCharacteristicsProcessModel>
definition = MultiInstanceLoopCharacteristicsProcessProcess.newProcess(app);
+ MultiInstanceLoopCharacteristicsProcessModel model =
definition.createModel();
List<String> myList = new ArrayList<>();
myList.add("First Item");
myList.add("Second Item");
- params.put("list", myList);
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "MultiInstanceLoopCharacteristicsProcess", params);
- assertProcessInstanceCompleted(processInstance);
+ model.setList(myList);
+ ProcessInstance<MultiInstanceLoopCharacteristicsProcessModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testMultiInstanceLoopNumberTest() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultiInstanceLoopNumbering.bpmn2");
- Map<String, Object> params = new HashMap<>();
-
+ public void testMultiInstanceLoopNumberTest() {
+ Application app = ProcessTestHelper.newApplication();
final Map<String, String> nodeIdNodeNameMap = new HashMap<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
NodeInstance nodeInstance = event.getNodeInstance();
String uniqId = ((NodeInstanceImpl)
nodeInstance).getUniqueId();
String nodeName = nodeInstance.getNode().getName();
-
String prevNodeName = nodeIdNodeNameMap.put(uniqId, nodeName);
if (prevNodeName != null) {
assertThat(prevNodeName).as(uniqId + " is used for more
than one node instance: ").isEqualTo(nodeName);
}
}
-
});
-
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
- KogitoProcessInstance processInstance =
kruntime.startProcess("MultiInstanceLoopNumbering", params);
-
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+ org.kie.kogito.process.Process<MultiInstanceLoopNumberingModel>
definition = MultiInstanceLoopNumberingProcess.newProcess(app);
+ MultiInstanceLoopNumberingModel model = definition.createModel();
+ ProcessInstance<MultiInstanceLoopNumberingModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
List<KogitoWorkItem> workItems = handler.getWorkItems();
logger.debug("COMPLETING TASKS.");
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItems.remove(0).getStringId(),
null);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItems.remove(0).getStringId(),
null);
- assertProcessInstanceCompleted(processInstance);
-
+ processInstance.completeWorkItem(workItems.remove(0).getStringId(),
null);
+ processInstance.completeWorkItem(workItems.remove(0).getStringId(),
null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -1156,41 +1101,39 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testMultiInstanceLoopCharacteristicsProcessWithOutput()
- throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultiInstanceLoopCharacteristicsProcessWithOutput.bpmn2");
- Map<String, Object> params = new HashMap<>();
+ public void testMultiInstanceLoopCharacteristicsProcessWithOutput() {
+ Application app = ProcessTestHelper.newApplication();
+
org.kie.kogito.process.Process<MultiInstanceLoopCharacteristicsProcessWithOutputModel>
definition =
MultiInstanceLoopCharacteristicsProcessWithOutputProcess.newProcess(app);
+ MultiInstanceLoopCharacteristicsProcessWithOutputModel model =
definition.createModel();
List<String> myList = new ArrayList<>();
List<String> myListOut = new ArrayList<>();
myList.add("First Item");
myList.add("Second Item");
- params.put("list", myList);
- params.put("listOut", myListOut);
+ model.setList(myList);
+ model.setListOut(myListOut);
assertThat(myListOut).isEmpty();
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "MultiInstanceLoopCharacteristicsProcessWithOutput", params);
- assertProcessInstanceCompleted(processInstance);
- assertThat(myListOut).hasSize(2);
-
+
ProcessInstance<MultiInstanceLoopCharacteristicsProcessWithOutputModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(model.getListOut()).hasSize(2);
}
@Test
- public void
testMultiInstanceLoopCharacteristicsProcessWithOutputCompletionCondition()
- throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultiInstanceLoopCharacteristicsProcessWithOutputCmpCond.bpmn2");
- Map<String, Object> params = new HashMap<>();
+ public void
testMultiInstanceLoopCharacteristicsProcessWithOutputCompletionCondition()
throws Exception {
+ Application app = ProcessTestHelper.newApplication();
+
org.kie.kogito.process.Process<MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondModel>
definition =
MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondProcess.newProcess(app);
+ MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondModel model =
definition.createModel();
List<String> myList = new ArrayList<>();
List<String> myListOut = new ArrayList<>();
myList.add("First Item");
myList.add("Second Item");
- params.put("list", myList);
- params.put("listOut", myListOut);
+ model.setList(myList);
+ model.setListOut(myListOut);
assertThat(myListOut).isEmpty();
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "MultiInstanceLoopCharacteristicsProcessWithOutputCmpCond",
params);
- assertProcessInstanceCompleted(processInstance);
- assertThat(myListOut).hasSize(1);
-
+
ProcessInstance<MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondModel>
processInstance = definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(model.getListOut()).hasSize(1);
}
@Test
@@ -1346,26 +1289,25 @@ public class FlowTest extends JbpmBpmn2TestCase {
@Test
public void testMultipleEnabledOnSingleConditionalSequenceFlow() throws
Exception {
System.setProperty("jbpm.enable.multi.con", "true");
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultiConnEnabled.bpmn2");
-
- final List<WorkflowElementIdentifier> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
- public void
afterNodeTriggered(org.kie.api.event.process.ProcessNodeTriggeredEvent event) {
+ Application app = ProcessTestHelper.newApplication();
+ final List<String> list = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
+ @Override
+ public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
if ("Task2".equals(event.getNodeInstance().getNodeName())) {
- list.add(event.getNodeInstance().getNodeId());
+
list.add(String.valueOf(event.getNodeInstance().getNodeId()));
}
}
});
-
+ org.kie.kogito.process.Process<MultiConnEnabledModel> definition =
MultiConnEnabledProcess.newProcess(app);
+ ProcessInstance<MultiConnEnabledModel> processInstance =
definition.createInstance(definition.createModel());
assertThat(list).isEmpty();
- KogitoProcessInstance processInstance =
kruntime.startProcess("MultiConnEnabled");
- assertProcessInstanceActive(processInstance);
- kruntime.signalEvent("signal", null, processInstance.getStringId());
- assertProcessInstanceCompleted(processInstance);
-
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ processInstance.send(Sig.of("signal", null));
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(list).hasSize(1);
System.clearProperty("jbpm.enable.multi.con");
-
}
@Test
@@ -1435,9 +1377,10 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
@Test
- public void testMultipleGatewaysProcess() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/flow/BPMN2-MultipleGatewaysProcess.bpmn2");
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ public void testMultipleGatewaysProcess() {
+ Application app = ProcessTestHelper.newApplication();
+
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
KogitoProcessInstance pi;
@Override
@@ -1458,49 +1401,36 @@ public class FlowTest extends JbpmBpmn2TestCase {
}
});
- Map<String, Object> params = new HashMap<>();
- params.put("action", "CreateAgent");
- KogitoProcessInstance processInstance =
kruntime.startProcess("MultipleGatewaysProcess", params);
-
- assertProcessInstanceCompleted(processInstance);
+ org.kie.kogito.process.Process<MultipleGatewaysProcessModel>
definition = MultipleGatewaysProcessProcess.newProcess(app);
+ MultipleGatewaysProcessModel model = definition.createModel();
+ model.setAction("CreateAgent");
+ ProcessInstance<MultipleGatewaysProcessModel> processInstance =
definition.createInstance(model);
+ processInstance.start();
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
@Test
- public void testTimerAndGateway() throws Exception {
+ public void testTimerAndGateway() {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("timer", 1);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/timer/BPMN2-ParallelSplitWithTimerProcess.bpmn2");
-
- kruntime.getProcessEventManager().addEventListener(countDownListener);
-
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
TestWorkItemHandler handler1 = new TestWorkItemHandler();
TestWorkItemHandler handler2 = new TestWorkItemHandler();
-
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("task1",
handler1);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("task2",
handler2);
-
- KogitoProcessInstance instance =
kruntime.createProcessInstance("ParallelSplitWithTimerProcess", new
HashMap<>());
- kruntime.startProcessInstance(instance.getStringId());
-
+ ProcessTestHelper.registerHandler(app, "task1", handler1);
+ ProcessTestHelper.registerHandler(app, "task2", handler2);
+ org.kie.kogito.process.Process<ParallelSplitWithTimerProcessModel>
definition = ParallelSplitWithTimerProcessProcess.newProcess(app);
+ ProcessInstance<ParallelSplitWithTimerProcessModel> processInstance =
definition.createInstance(definition.createModel());
+ processInstance.start();
KogitoWorkItem workItem1 = handler1.getWorkItem();
assertThat(workItem1).isNotNull();
assertThat(handler1.getWorkItem()).isNull();
- //first safe state: task1 completed
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem1.getStringId(),
null);
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("task1",
handler1);
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("task2",
handler2);
- //second safe state: timer completed, waiting on task2
+ processInstance.completeWorkItem(workItem1.getStringId(), null);
countDownListener.waitTillCompleted();
-
KogitoWorkItem workItem2 = handler2.getWorkItem();
- //Both sides of the join are completed. But on the process instance,
there are two
- //JoinInstance for the same Join, and since it is an AND join, it
never reaches task2
- //It fails after the next assertion
assertThat(workItem2).isNotNull();
assertThat(handler2.getWorkItem()).isNull();
-
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem2.getStringId(),
null);
- assertProcessInstanceCompleted(instance);
+ processInstance.completeWorkItem(workItem2.getStringId(), null);
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
private static class GetProcessVariableCommand implements
ExecutableCommand<Object> {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]