Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[incubator-kie-issues-1131] test migration from V7 to code generation-36 #3682

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<itemDefinition id="_xItem" structureRef="String" />
<itemDefinition id="_yItem" structureRef="String" />
<itemDefinition id="_nameItem" structureRef="String" />
<itemDefinition id="_surnameItem" structureRef="String" />
<itemDefinition id="_personItem" structureRef="org.jbpm.bpmn2.objects.Person" />

<process processType="Private" isExecutable="true" id="ScriptTaskFEEL" name="ScriptTask Process" tns:packageName="org.jbpm.bpmn2.activity" >
Expand All @@ -41,6 +42,7 @@
<property id="x" itemSubjectRef="_xItem"/>
<property id="y" itemSubjectRef="_yItem"/>
<property id="name" itemSubjectRef="_nameItem"/>
<property id="surname" itemSubjectRef="_surnameItem"/>
<property id="person" itemSubjectRef="_personItem"/>

<!-- nodes -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/bpmn20" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:bpsim="http://www.bpsim.org/schemas/1.0" xmlns:color="http://www.omg.org/spec/BPMN/non-normative/color" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" id="_RSWy4J-HEei4M9OEIzmf1w" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd" exporter="jBPM Designer" exporterVersion="1.0" expressionLanguage="http://www.mvel.org/2.0" targetNamespace="http://www.omg.org/bpmn20" typeLanguage="http://www.java.com/javaTypes">
<bpmn2:itemDefinition id="_childsItem" structureRef="java.util.List"/>
<bpmn2:itemDefinition id="_fatherIdItem" structureRef="java.lang.Long"/>
<bpmn2:itemDefinition id="_fatherIdItem" structureRef="java.lang.String"/>
<bpmn2:signal id="_ab06284f-eb30-3d3b-80aa-c35195ce2096" name="stopChild:#{fatherId}"/>
<bpmn2:itemDefinition id="_5A8FEA7B-2888-4ECE-B6FD-119A3EB5C708_multiInstanceItemType"/>
<bpmn2:itemDefinition id="__47B12FBC-C42B-4ADB-A359-5FC0C36BF7E8_SkippableInputXItem" structureRef="Object"/>
Expand Down
41 changes: 21 additions & 20 deletions jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ActivityTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
import java.util.stream.Collectors;

import org.drools.compiler.rule.builder.PackageBuildContext;
import org.jbpm.bpmn2.activity.ScriptTaskFEELModel;
import org.jbpm.bpmn2.activity.ScriptTaskFEELProcess;
import org.jbpm.bpmn2.activity.ScriptTaskModel;
import org.jbpm.bpmn2.activity.ScriptTaskProcess;
import org.jbpm.bpmn2.activity.ScriptTaskWithIOModel;
Expand Down Expand Up @@ -1805,28 +1807,27 @@ public void testBusinessRuleTaskFireLimitAsParameter() throws Exception {
}

@Test
@Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067")
public void testScriptTaskFEEL() throws Exception {
kruntime = createKogitoProcessRuntime("BPMN2-ScriptTaskFEEL.bpmn2");

TestWorkItemHandler handler = new TestWorkItemHandler();
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);

Map<String, Object> params = new HashMap<>();
params.put("name", "krisv");
public void testScriptTaskFEEL() {
Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
EventTrackerProcessListener tracker = new EventTrackerProcessListener();
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
ProcessTestHelper.registerProcessEventListener(app, tracker);
org.kie.kogito.process.Process<ScriptTaskFEELModel> processDefinition = ScriptTaskFEELProcess.newProcess(app);
ScriptTaskFEELModel model = processDefinition.createModel();
model.setName("krisv");
Person person = new Person();
person.setName("krisv");
params.put("person", person);

KogitoProcessInstance processInstance = kruntime.startProcess("ScriptTask", params);
assertThat(((org.jbpm.workflow.instance.WorkflowProcessInstance) processInstance).getVariable("x")).isEqualTo("Entry");
assertThat(((org.jbpm.workflow.instance.WorkflowProcessInstance) processInstance).getVariable("y")).isNull();

kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(), null);
assertThat(getProcessVarValue(processInstance, "y")).isEqualTo("Exit");
assertThat(((org.jbpm.workflow.instance.WorkflowProcessInstance) processInstance).getVariable("surname")).isEqualTo("tester");

assertNodeTriggered(processInstance.getStringId(), "Script1");
model.setPerson(person);
ProcessInstance<ScriptTaskFEELModel> processInstance = processDefinition.createInstance(model);
processInstance.start();
assertThat(processInstance.variables().getX()).isEqualTo("Entry");
assertThat(processInstance.variables().getY()).isNull();
ProcessTestHelper.completeWorkItem(processInstance, Collections.emptyMap());
assertThat(processInstance.variables().getY()).isEqualTo("Exit");
assertThat(processInstance.variables().getSurname()).isEqualTo("tester");
Set<String> nodes = tracker.tracked().stream().map(event -> event.getNodeInstance().getNodeName()).collect(Collectors.toSet());
assertThat(nodes.contains("Script1")).isTrue();
}

@Test
Expand Down
49 changes: 26 additions & 23 deletions jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
import java.util.Map;
import java.util.Optional;

import org.jbpm.bpmn2.error.BoundaryErrorEventCatchingOnEntryExceptionModel;
import org.jbpm.bpmn2.error.BoundaryErrorEventCatchingOnEntryExceptionProcess;
import org.jbpm.bpmn2.error.BoundaryErrorEventCatchingOnExitExceptionModel;
import org.jbpm.bpmn2.error.BoundaryErrorEventCatchingOnExitExceptionProcess;
import org.jbpm.bpmn2.error.BoundaryErrorEventDefaultHandlerByErrorCodeModel;
import org.jbpm.bpmn2.error.BoundaryErrorEventDefaultHandlerByErrorCodeProcess;
import org.jbpm.bpmn2.error.BoundaryErrorEventDefaultHandlerWithErrorCodeWithStructureRefModel;
Expand Down Expand Up @@ -68,7 +72,6 @@
import org.jbpm.process.workitem.builtin.SystemOutWorkItemHandler;
import org.jbpm.test.utils.EventTrackerProcessListener;
import org.jbpm.test.utils.ProcessTestHelper;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.kie.api.event.process.DefaultProcessEventListener;
import org.kie.api.event.process.ProcessNodeLeftEvent;
Expand Down Expand Up @@ -430,31 +433,31 @@ public void testEventSubProcessErrorWithScript() throws Exception {
}

@Test
@Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067")
public void testErrorBoundaryEventOnEntry() throws Exception {
kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventCatchingOnEntryException.bpmn2");
TestWorkItemHandler handler = new TestWorkItemHandler();
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);

KogitoProcessInstance processInstance = kruntime.startProcess("BoundaryErrorEventOnEntry");

assertProcessInstanceActive(processInstance.getStringId(), kruntime);
assertThat(handler.getWorkItems()).hasSize(1);
public void testErrorBoundaryEventOnEntry() {
Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
org.kie.kogito.process.Process<BoundaryErrorEventCatchingOnEntryExceptionModel> processDefinition = BoundaryErrorEventCatchingOnEntryExceptionProcess.newProcess(app);
BoundaryErrorEventCatchingOnEntryExceptionModel model = processDefinition.createModel();
ProcessInstance<BoundaryErrorEventCatchingOnEntryExceptionModel> processInstance = processDefinition.createInstance(model);
processInstance.start();
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
assertThat(workItemHandler.getWorkItems()).hasSize(1);
}

@Test
@Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067")
public void testErrorBoundaryEventOnExit() throws Exception {
kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventCatchingOnExitException.bpmn2");
TestWorkItemHandler handler = new TestWorkItemHandler();
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);

KogitoProcessInstance processInstance = kruntime.startProcess("BoundaryErrorEventOnExit");

assertProcessInstanceActive(processInstance.getStringId(), kruntime);
KogitoWorkItem workItem = handler.getWorkItem();
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(), null);
assertThat(handler.getWorkItems()).hasSize(1);
public void testErrorBoundaryEventOnExit() {
Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
org.kie.kogito.process.Process<BoundaryErrorEventCatchingOnExitExceptionModel> processDefinition = BoundaryErrorEventCatchingOnExitExceptionProcess.newProcess(app);
BoundaryErrorEventCatchingOnExitExceptionModel model = processDefinition.createModel();
ProcessInstance<BoundaryErrorEventCatchingOnExitExceptionModel> processInstance = processDefinition.createInstance(model);
processInstance.start();
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
KogitoWorkItem workItem = workItemHandler.getWorkItem();
processInstance.completeWorkItem(workItem.getStringId(), Collections.emptyMap());
assertThat(workItemHandler.getWorkItems()).hasSize(1);
}

@Test
Expand Down
80 changes: 46 additions & 34 deletions jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/FlowTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@
import org.jbpm.bpmn2.flow.InclusiveGatewayWithDefaultProcess;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithHumanTasksProcessModel;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithHumanTasksProcessProcess;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithLoopInsideModel;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithLoopInsideProcess;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithLoopInsideSubprocessModel;
import org.jbpm.bpmn2.flow.InclusiveGatewayWithLoopInsideSubprocessProcess;
import org.jbpm.bpmn2.flow.InclusiveNestedInParallelNestedInExclusiveModel;
import org.jbpm.bpmn2.flow.InclusiveNestedInParallelNestedInExclusiveProcess;
import org.jbpm.bpmn2.flow.InclusiveSplitAndJoinEmbeddedModel;
Expand Down Expand Up @@ -86,10 +90,14 @@
import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputCmpCondProcess;
import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputModel;
import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsProcessWithOutputProcess;
import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsTaskWithOutputModel;
import org.jbpm.bpmn2.flow.MultiInstanceLoopCharacteristicsTaskWithOutputProcess;
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.MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsModel;
import org.jbpm.bpmn2.loop.MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsProcess;
import org.jbpm.bpmn2.loop.MultiInstanceLoopCharacteristicsTaskModel;
import org.jbpm.bpmn2.loop.MultiInstanceLoopCharacteristicsTaskProcess;
import org.jbpm.bpmn2.objects.TestUserTaskWorkItemHandler;
Expand Down Expand Up @@ -777,50 +785,55 @@ public void testInclusiveSplitNested() {
}

@Test
@Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067")
public void testInclusiveSplitWithLoopInside() throws Exception {
kruntime = createKogitoProcessRuntime("BPMN2-InclusiveGatewayWithLoopInside.bpmn2");

public void testInclusiveSplitWithLoopInside() {
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 = new Integer(0);
value = 0;
}

value++;
nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value);
}

});

TestWorkItemHandler handler = new TestWorkItemHandler();
TestWorkItemHandler handler2 = new TestWorkItemHandler();
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI", handler);
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("testWI2", handler2);
Map<String, Object> params = new HashMap<>();
params.put("x", -1);
KogitoProcessInstance processInstance = kruntime.startProcess("Process_1", params);
ProcessTestHelper.registerHandler(app, "testWI", handler);
ProcessTestHelper.registerHandler(app, "testWI2", handler2);

org.kie.kogito.process.Process<InclusiveGatewayWithLoopInsideModel> processDefinition = InclusiveGatewayWithLoopInsideProcess.newProcess(app);
InclusiveGatewayWithLoopInsideModel model = processDefinition.createModel();
model.setX(-1);
ProcessInstance<InclusiveGatewayWithLoopInsideModel> processInstance = processDefinition.createInstance(model);
processInstance.start();

assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);

assertProcessInstanceActive(processInstance);
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(handler2.getWorkItem().getStringId(), null);
assertProcessInstanceActive(processInstance);
kruntime.getKogitoWorkItemManager().completeWorkItem(handler2.getWorkItem().getStringId(), null);
assertProcessInstanceActive(processInstance);
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(), null);
assertProcessInstanceCompleted(processInstance);
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
processInstance.completeWorkItem(handler2.getWorkItem().getStringId(), null);

assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
processInstance.completeWorkItem(handler2.getWorkItem().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(10);
assertThat((int) nodeInstanceExecutionCounter.get("Start")).isEqualTo(1);
assertThat((int) nodeInstanceExecutionCounter.get("OR diverging")).isEqualTo(1);
Expand Down Expand Up @@ -1141,25 +1154,24 @@ public void testMultiInstanceLoopCharacteristicsProcessWithOutputCompletionCondi
}

@Test
@Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067")
public void testMultiInstanceLoopCharacteristicsProcessWithOutputAndScripts()
throws Exception {
kruntime = createKogitoProcessRuntime("BPMN2-MultiInstanceLoopCharacteristicsProcessWithOutputAndScripts.bpmn2");
Map<String, Object> params = new HashMap<>();
public void testMultiInstanceLoopCharacteristicsProcessWithOutputAndScripts() {
Application app = ProcessTestHelper.newApplication();
List<String> myList = new ArrayList<>();
List<String> myListOut = new ArrayList<>();
List<String> scriptList = new ArrayList<>();
myList.add("First Item");
myList.add("Second Item");
params.put("list", myList);
params.put("listOut", myListOut);
params.put("scriptList", scriptList);
assertThat(myListOut).isEmpty();
KogitoProcessInstance processInstance = kruntime.startProcess("MultiInstanceLoopCharacteristicsProcessWithOutput", params);
assertProcessInstanceCompleted(processInstance);
org.kie.kogito.process.Process<MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsModel> processDefinition = MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsProcess.newProcess(app);
MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsModel model = processDefinition.createModel();
model.setList(myList);
model.setListOut(myListOut);
model.setScriptList(scriptList);
ProcessInstance<MultiInstanceLoopCharacteristicsProcessWithOutputAndScriptsModel> processInstance = processDefinition.createInstance(model);
processInstance.start();
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(myListOut).hasSize(2);
assertThat(scriptList).hasSize(2);

}

@Test
Expand Down
Loading
Loading