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 bfb00fd5e0 [incubator-kie-issues-1131] Process test migration from v7
legacy runtime to code generation (#3519)
bfb00fd5e0 is described below
commit bfb00fd5e0075e82f1a42c31849478550b22b739
Author: Abhiram Gundala <[email protected]>
AuthorDate: Wed May 29 09:57:31 2024 -0400
[incubator-kie-issues-1131] Process test migration from v7 legacy runtime
to code generation (#3519)
---
.../src/test/java/org/jbpm/bpmn2/ActivityTest.java | 137 +++++++++++++--------
1 file changed, 85 insertions(+), 52 deletions(-)
diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java
index c396cf8abb..4beb906a82 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java
@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
import org.drools.compiler.rule.builder.PackageBuildContext;
import org.jbpm.bpmn2.activity.ScriptTaskModel;
@@ -56,8 +58,21 @@ import org.jbpm.bpmn2.objects.Address;
import org.jbpm.bpmn2.objects.HelloService;
import org.jbpm.bpmn2.objects.Person;
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
+import org.jbpm.bpmn2.subprocess.CallActivityModel;
+import org.jbpm.bpmn2.subprocess.CallActivityProcess;
+import org.jbpm.bpmn2.subprocess.CallActivitySubProcessProcess;
+import org.jbpm.bpmn2.subprocess.InputMappingUsingValueModel;
+import org.jbpm.bpmn2.subprocess.InputMappingUsingValueProcess;
+import org.jbpm.bpmn2.subprocess.SingleTaskWithVarDefModel;
+import org.jbpm.bpmn2.subprocess.SingleTaskWithVarDefProcess;
import org.jbpm.bpmn2.subprocess.SubProcessWithEntryExitScriptsModel;
import org.jbpm.bpmn2.subprocess.SubProcessWithEntryExitScriptsProcess;
+import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventModel;
+import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcess;
+import
org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcessScopeModel;
+import
org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcessScopeProcess;
+import org.jbpm.bpmn2.task.ReceiveTaskModel;
+import org.jbpm.bpmn2.task.ReceiveTaskProcess;
import org.jbpm.bpmn2.task.SendTaskModel;
import org.jbpm.bpmn2.task.SendTaskProcess;
import org.jbpm.bpmn2.test.RequirePersistence;
@@ -85,6 +100,8 @@ import org.jbpm.workflow.core.node.WorkItemNode;
import org.jbpm.workflow.instance.WorkflowRuntimeException;
import org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl;
import org.jbpm.workflow.instance.node.DynamicUtils;
+import org.jbpm.workflow.instance.node.EndNodeInstance;
+import org.jbpm.workflow.instance.node.StartNodeInstance;
import org.jbpm.workflow.instance.node.WorkItemNodeInstance;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -94,6 +111,7 @@ import org.kie.api.definition.process.Node;
import org.kie.api.definition.process.NodeContainer;
import org.kie.api.definition.process.Process;
import org.kie.api.definition.process.WorkflowElementIdentifier;
+import org.kie.api.event.process.ProcessNodeEvent;
import org.kie.api.event.process.ProcessNodeTriggeredEvent;
import org.kie.api.event.process.ProcessStartedEvent;
import org.kie.api.event.process.ProcessVariableChangedEvent;
@@ -453,25 +471,26 @@ public class ActivityTest extends JbpmBpmn2TestCase {
}
@Test
- public void testCallActivityWithContantsAssignment() throws Exception {
- kruntime = createKogitoProcessRuntime(
- "org/jbpm/bpmn2/subprocess/BPMN2-SingleTaskWithVarDef.bpmn2",
-
"org/jbpm/bpmn2/subprocess/BPMN2-InputMappingUsingValue.bpmn2");
-
- TestWorkItemHandler handler = new TestWorkItemHandler();
-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("CustomTask",
handler);
- Map<String, Object> params = new HashMap<>();
- KogitoProcessInstance processInstance =
kruntime.startProcess("InputMappingUsingValue", params);
+ public void testCallActivityWithContantsAssignment() {
+ Application app = ProcessTestHelper.newApplication();
+ TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+ ProcessTestHelper.registerHandler(app, "CustomTask", workItemHandler);
+ org.kie.kogito.process.Process<SingleTaskWithVarDefModel>
singleTaskWithVarDefModelProcess = SingleTaskWithVarDefProcess.newProcess(app);
+ SingleTaskWithVarDefModel singleTaskWithVarDefModel =
singleTaskWithVarDefModelProcess.createModel();
+ ProcessInstance<SingleTaskWithVarDefModel>
singleTaskWithVarDefModelProcessInstance =
singleTaskWithVarDefModelProcess.createInstance(singleTaskWithVarDefModel);
+ org.kie.kogito.process.Process<InputMappingUsingValueModel>
processDefinition = InputMappingUsingValueProcess.newProcess(app);
+ InputMappingUsingValueModel model = processDefinition.createModel();
+ org.kie.kogito.process.ProcessInstance<InputMappingUsingValueModel>
instance = processDefinition.createInstance(model);
+ instance.start();
- org.kie.kogito.internal.process.runtime.KogitoWorkItem workItem =
handler.getWorkItem();
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_ACTIVE);
+ KogitoWorkItem workItem = workItemHandler.getWorkItem();
assertThat(workItem).isNotNull();
-
Object value = workItem.getParameter("TaskName");
assertThat(value).isNotNull().isEqualTo("test string");
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(),
null);
-
- assertProcessInstanceCompleted(processInstance);
+
singleTaskWithVarDefModelProcessInstance.completeWorkItem(workItem.getStringId(),
Collections.emptyMap());
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
}
@Test
@@ -499,16 +518,18 @@ public class ActivityTest extends JbpmBpmn2TestCase {
}
@Test
- public void testCallActivity() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-CallActivity.bpmn2",
-
"org/jbpm/bpmn2/subprocess/BPMN2-CallActivitySubProcess.bpmn2");
+ public void testCallActivity() {
+ Application app = ProcessTestHelper.newApplication();
+ org.kie.kogito.process.Process<CallActivityModel> processDefinition =
CallActivityProcess.newProcess(app);
+ CallActivityModel model = processDefinition.createModel();
+ model.setX("oldValue");
+ ProcessInstance<CallActivityModel> instance =
processDefinition.createInstance(model);
- Map<String, Object> params = new HashMap<>();
- params.put("x", "oldValue");
- KogitoProcessInstance processInstance = kruntime.startProcess(
- "CallActivity", params);
- assertProcessInstanceCompleted(processInstance);
- assertThat(((KogitoWorkflowProcessInstance)
processInstance).getVariable("y")).isEqualTo("new value");
+ CallActivitySubProcessProcess.newProcess(app);
+
+ instance.start();
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(instance.variables().getY()).isEqualTo("new value");
}
@Test
@@ -650,36 +671,46 @@ public class ActivityTest extends JbpmBpmn2TestCase {
}
@Test
- public void testSubProcessWithTerminateEndEvent() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-SubProcessWithTerminateEndEvent.bpmn2");
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ public void testSubProcessWithTerminateEndEvent() {
+ Application app = ProcessTestHelper.newApplication();
+ EventTrackerProcessListener listener = new
EventTrackerProcessListener();
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ org.kie.kogito.process.Process<SubProcessWithTerminateEndEventModel>
processDefinition = SubProcessWithTerminateEndEventProcess.newProcess(app);
+ SubProcessWithTerminateEndEventModel model =
processDefinition.createModel();
+
+
org.kie.kogito.process.ProcessInstance<SubProcessWithTerminateEndEventModel>
instance = processDefinition.createInstance(model);
+ instance.start();
+ Set<NodeInstance> processNodeEvents = listener.tracked().stream()
+ .map(ProcessNodeEvent::getNodeInstance)
+ .collect(Collectors.toSet());
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(processNodeEvents).hasSize(7);
- @Override
- public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
- list.add(event.getNodeInstance().getNodeName());
- }
- });
- KogitoProcessInstance processInstance =
kruntime.startProcess("SubProcessWithTerminateEndEvent");
- assertProcessInstanceCompleted(processInstance);
- assertThat(list).hasSize(7);
}
@Test
- public void testSubProcessWithTerminateEndEventProcessScope()
- throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-SubProcessWithTerminateEndEventProcessScope.bpmn2");
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ public void testSubProcessWithTerminateEndEventProcessScope() {
+
+ Application app = ProcessTestHelper.newApplication();
+ final List<String> nodeList = new ArrayList<>();
+ EventTrackerProcessListener listener = new
EventTrackerProcessListener() {
@Override
public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
- list.add(event.getNodeInstance().getNodeName());
+ NodeInstance nodeInstance = event.getNodeInstance();
+ if (!(nodeInstance instanceof EndNodeInstance || nodeInstance
instanceof StartNodeInstance)) {
+ nodeList.add(nodeInstance.getNodeName());
+ }
}
- });
- KogitoProcessInstance processInstance =
kruntime.startProcess("SubProcessWithTerminateEndEventProcessScope");
- assertProcessInstanceCompleted(processInstance);
- assertThat(list).hasSize(5);
+ };
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+
org.kie.kogito.process.Process<SubProcessWithTerminateEndEventProcessScopeModel>
processDefinition =
SubProcessWithTerminateEndEventProcessScopeProcess.newProcess(app);
+ SubProcessWithTerminateEndEventProcessScopeModel model =
processDefinition.createModel();
+
+
org.kie.kogito.process.ProcessInstance<SubProcessWithTerminateEndEventProcessScopeModel>
instance = processDefinition.createInstance(model);
+ instance.start();
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(nodeList).hasSize(3);
}
@Test
@@ -883,17 +914,19 @@ public class ActivityTest extends JbpmBpmn2TestCase {
@Test
public void testReceiveTask() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/task/BPMN2-ReceiveTask.bpmn2");
ReceiveTaskHandler receiveTaskHandler = new
ReceiveTaskHandler(kruntime);
-
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Receive
Task",
- receiveTaskHandler);
- KogitoWorkflowProcessInstance processInstance =
(KogitoWorkflowProcessInstance) kruntime
- .startProcess("ReceiveTask");
- assertProcessInstanceActive(processInstance);
+ ProcessTestHelper.registerHandler(app, "Receive Task",
receiveTaskHandler);
+ org.kie.kogito.process.Process<ReceiveTaskModel> processDefinition =
ReceiveTaskProcess.newProcess(app);
+ ReceiveTaskModel model = processDefinition.createModel();
+ org.kie.kogito.process.ProcessInstance<ReceiveTaskModel> instance =
processDefinition.createInstance(model);
+ instance.start();
+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_ACTIVE);
receiveTaskHandler.setKnowledgeRuntime(kruntime);
receiveTaskHandler.messageReceived("HelloMessage", "Hello john!");
- assertProcessInstanceFinished(processInstance, kruntime);
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]