Skip to content

Commit bfb00fd

Browse files
authored
[incubator-kie-issues-1131] Process test migration from v7 legacy runtime to code generation (#3519)
1 parent a913910 commit bfb00fd

File tree

1 file changed

+85
-52
lines changed

1 file changed

+85
-52
lines changed

jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java

Lines changed: 85 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import java.util.List;
2727
import java.util.Map;
2828
import java.util.Objects;
29+
import java.util.Set;
30+
import java.util.stream.Collectors;
2931

3032
import org.drools.compiler.rule.builder.PackageBuildContext;
3133
import org.jbpm.bpmn2.activity.ScriptTaskModel;
@@ -56,8 +58,21 @@
5658
import org.jbpm.bpmn2.objects.HelloService;
5759
import org.jbpm.bpmn2.objects.Person;
5860
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
61+
import org.jbpm.bpmn2.subprocess.CallActivityModel;
62+
import org.jbpm.bpmn2.subprocess.CallActivityProcess;
63+
import org.jbpm.bpmn2.subprocess.CallActivitySubProcessProcess;
64+
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueModel;
65+
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueProcess;
66+
import org.jbpm.bpmn2.subprocess.SingleTaskWithVarDefModel;
67+
import org.jbpm.bpmn2.subprocess.SingleTaskWithVarDefProcess;
5968
import org.jbpm.bpmn2.subprocess.SubProcessWithEntryExitScriptsModel;
6069
import org.jbpm.bpmn2.subprocess.SubProcessWithEntryExitScriptsProcess;
70+
import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventModel;
71+
import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcess;
72+
import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcessScopeModel;
73+
import org.jbpm.bpmn2.subprocess.SubProcessWithTerminateEndEventProcessScopeProcess;
74+
import org.jbpm.bpmn2.task.ReceiveTaskModel;
75+
import org.jbpm.bpmn2.task.ReceiveTaskProcess;
6176
import org.jbpm.bpmn2.task.SendTaskModel;
6277
import org.jbpm.bpmn2.task.SendTaskProcess;
6378
import org.jbpm.bpmn2.test.RequirePersistence;
@@ -85,6 +100,8 @@
85100
import org.jbpm.workflow.instance.WorkflowRuntimeException;
86101
import org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl;
87102
import org.jbpm.workflow.instance.node.DynamicUtils;
103+
import org.jbpm.workflow.instance.node.EndNodeInstance;
104+
import org.jbpm.workflow.instance.node.StartNodeInstance;
88105
import org.jbpm.workflow.instance.node.WorkItemNodeInstance;
89106
import org.junit.jupiter.api.Disabled;
90107
import org.junit.jupiter.api.Test;
@@ -94,6 +111,7 @@
94111
import org.kie.api.definition.process.NodeContainer;
95112
import org.kie.api.definition.process.Process;
96113
import org.kie.api.definition.process.WorkflowElementIdentifier;
114+
import org.kie.api.event.process.ProcessNodeEvent;
97115
import org.kie.api.event.process.ProcessNodeTriggeredEvent;
98116
import org.kie.api.event.process.ProcessStartedEvent;
99117
import org.kie.api.event.process.ProcessVariableChangedEvent;
@@ -453,25 +471,26 @@ public void testUserTaskVerifyParameters() throws Exception {
453471
}
454472

455473
@Test
456-
public void testCallActivityWithContantsAssignment() throws Exception {
457-
kruntime = createKogitoProcessRuntime(
458-
"org/jbpm/bpmn2/subprocess/BPMN2-SingleTaskWithVarDef.bpmn2",
459-
"org/jbpm/bpmn2/subprocess/BPMN2-InputMappingUsingValue.bpmn2");
460-
461-
TestWorkItemHandler handler = new TestWorkItemHandler();
462-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("CustomTask", handler);
463-
Map<String, Object> params = new HashMap<>();
464-
KogitoProcessInstance processInstance = kruntime.startProcess("InputMappingUsingValue", params);
474+
public void testCallActivityWithContantsAssignment() {
475+
Application app = ProcessTestHelper.newApplication();
476+
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
477+
ProcessTestHelper.registerHandler(app, "CustomTask", workItemHandler);
478+
org.kie.kogito.process.Process<SingleTaskWithVarDefModel> singleTaskWithVarDefModelProcess = SingleTaskWithVarDefProcess.newProcess(app);
479+
SingleTaskWithVarDefModel singleTaskWithVarDefModel = singleTaskWithVarDefModelProcess.createModel();
480+
ProcessInstance<SingleTaskWithVarDefModel> singleTaskWithVarDefModelProcessInstance = singleTaskWithVarDefModelProcess.createInstance(singleTaskWithVarDefModel);
481+
org.kie.kogito.process.Process<InputMappingUsingValueModel> processDefinition = InputMappingUsingValueProcess.newProcess(app);
482+
InputMappingUsingValueModel model = processDefinition.createModel();
483+
org.kie.kogito.process.ProcessInstance<InputMappingUsingValueModel> instance = processDefinition.createInstance(model);
484+
instance.start();
465485

466-
org.kie.kogito.internal.process.runtime.KogitoWorkItem workItem = handler.getWorkItem();
486+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_ACTIVE);
487+
KogitoWorkItem workItem = workItemHandler.getWorkItem();
467488
assertThat(workItem).isNotNull();
468-
469489
Object value = workItem.getParameter("TaskName");
470490
assertThat(value).isNotNull().isEqualTo("test string");
471491

472-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(), null);
473-
474-
assertProcessInstanceCompleted(processInstance);
492+
singleTaskWithVarDefModelProcessInstance.completeWorkItem(workItem.getStringId(), Collections.emptyMap());
493+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
475494
}
476495

477496
@Test
@@ -499,16 +518,18 @@ public void testSubProcessWithEntryExitScripts() throws Exception {
499518
}
500519

501520
@Test
502-
public void testCallActivity() throws Exception {
503-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-CallActivity.bpmn2",
504-
"org/jbpm/bpmn2/subprocess/BPMN2-CallActivitySubProcess.bpmn2");
521+
public void testCallActivity() {
522+
Application app = ProcessTestHelper.newApplication();
523+
org.kie.kogito.process.Process<CallActivityModel> processDefinition = CallActivityProcess.newProcess(app);
524+
CallActivityModel model = processDefinition.createModel();
525+
model.setX("oldValue");
526+
ProcessInstance<CallActivityModel> instance = processDefinition.createInstance(model);
505527

506-
Map<String, Object> params = new HashMap<>();
507-
params.put("x", "oldValue");
508-
KogitoProcessInstance processInstance = kruntime.startProcess(
509-
"CallActivity", params);
510-
assertProcessInstanceCompleted(processInstance);
511-
assertThat(((KogitoWorkflowProcessInstance) processInstance).getVariable("y")).isEqualTo("new value");
528+
CallActivitySubProcessProcess.newProcess(app);
529+
530+
instance.start();
531+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
532+
assertThat(instance.variables().getY()).isEqualTo("new value");
512533
}
513534

514535
@Test
@@ -650,36 +671,46 @@ public void testMultiinstanceSubProcessWrongStartEvent() throws Exception {
650671
}
651672

652673
@Test
653-
public void testSubProcessWithTerminateEndEvent() throws Exception {
654-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-SubProcessWithTerminateEndEvent.bpmn2");
655-
final List<String> list = new ArrayList<>();
656-
kruntime.getProcessEventManager().addEventListener(new DefaultKogitoProcessEventListener() {
674+
public void testSubProcessWithTerminateEndEvent() {
675+
Application app = ProcessTestHelper.newApplication();
676+
EventTrackerProcessListener listener = new EventTrackerProcessListener();
677+
ProcessTestHelper.registerProcessEventListener(app, listener);
678+
org.kie.kogito.process.Process<SubProcessWithTerminateEndEventModel> processDefinition = SubProcessWithTerminateEndEventProcess.newProcess(app);
679+
SubProcessWithTerminateEndEventModel model = processDefinition.createModel();
680+
681+
org.kie.kogito.process.ProcessInstance<SubProcessWithTerminateEndEventModel> instance = processDefinition.createInstance(model);
682+
instance.start();
683+
Set<NodeInstance> processNodeEvents = listener.tracked().stream()
684+
.map(ProcessNodeEvent::getNodeInstance)
685+
.collect(Collectors.toSet());
686+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
687+
assertThat(processNodeEvents).hasSize(7);
657688

658-
@Override
659-
public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
660-
list.add(event.getNodeInstance().getNodeName());
661-
}
662-
});
663-
KogitoProcessInstance processInstance = kruntime.startProcess("SubProcessWithTerminateEndEvent");
664-
assertProcessInstanceCompleted(processInstance);
665-
assertThat(list).hasSize(7);
666689
}
667690

668691
@Test
669-
public void testSubProcessWithTerminateEndEventProcessScope()
670-
throws Exception {
671-
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/subprocess/BPMN2-SubProcessWithTerminateEndEventProcessScope.bpmn2");
672-
final List<String> list = new ArrayList<>();
673-
kruntime.getProcessEventManager().addEventListener(new DefaultKogitoProcessEventListener() {
692+
public void testSubProcessWithTerminateEndEventProcessScope() {
693+
694+
Application app = ProcessTestHelper.newApplication();
695+
final List<String> nodeList = new ArrayList<>();
696+
EventTrackerProcessListener listener = new EventTrackerProcessListener() {
674697

675698
@Override
676699
public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
677-
list.add(event.getNodeInstance().getNodeName());
700+
NodeInstance nodeInstance = event.getNodeInstance();
701+
if (!(nodeInstance instanceof EndNodeInstance || nodeInstance instanceof StartNodeInstance)) {
702+
nodeList.add(nodeInstance.getNodeName());
703+
}
678704
}
679-
});
680-
KogitoProcessInstance processInstance = kruntime.startProcess("SubProcessWithTerminateEndEventProcessScope");
681-
assertProcessInstanceCompleted(processInstance);
682-
assertThat(list).hasSize(5);
705+
};
706+
ProcessTestHelper.registerProcessEventListener(app, listener);
707+
org.kie.kogito.process.Process<SubProcessWithTerminateEndEventProcessScopeModel> processDefinition = SubProcessWithTerminateEndEventProcessScopeProcess.newProcess(app);
708+
SubProcessWithTerminateEndEventProcessScopeModel model = processDefinition.createModel();
709+
710+
org.kie.kogito.process.ProcessInstance<SubProcessWithTerminateEndEventProcessScopeModel> instance = processDefinition.createInstance(model);
711+
instance.start();
712+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_COMPLETED);
713+
assertThat(nodeList).hasSize(3);
683714
}
684715

685716
@Test
@@ -883,17 +914,19 @@ public void testSendTask() {
883914

884915
@Test
885916
public void testReceiveTask() throws Exception {
917+
Application app = ProcessTestHelper.newApplication();
886918
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/task/BPMN2-ReceiveTask.bpmn2");
887919
ReceiveTaskHandler receiveTaskHandler = new ReceiveTaskHandler(kruntime);
888-
889-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Receive Task",
890-
receiveTaskHandler);
891-
KogitoWorkflowProcessInstance processInstance = (KogitoWorkflowProcessInstance) kruntime
892-
.startProcess("ReceiveTask");
893-
assertProcessInstanceActive(processInstance);
920+
ProcessTestHelper.registerHandler(app, "Receive Task", receiveTaskHandler);
921+
org.kie.kogito.process.Process<ReceiveTaskModel> processDefinition = ReceiveTaskProcess.newProcess(app);
922+
ReceiveTaskModel model = processDefinition.createModel();
923+
org.kie.kogito.process.ProcessInstance<ReceiveTaskModel> instance = processDefinition.createInstance(model);
924+
instance.start();
925+
assertThat(instance).extracting(ProcessInstance::status).isEqualTo(ProcessInstance.STATE_ACTIVE);
894926
receiveTaskHandler.setKnowledgeRuntime(kruntime);
895927
receiveTaskHandler.messageReceived("HelloMessage", "Hello john!");
896-
assertProcessInstanceFinished(processInstance, kruntime);
928+
ProcessTestHelper.completeWorkItem(instance, "john", Collections.emptyMap());
929+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
897930
}
898931

899932
@Test

0 commit comments

Comments
 (0)