Skip to content

Commit e2082a2

Browse files
committed
fix tests
1 parent bb49038 commit e2082a2

22 files changed

+993
-76
lines changed

jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ private void visitContextExceptionScope(Context context, BlockStmt body) {
309309
String signalName = action.getSignalName();
310310
body.addStatement(getFactoryMethod(getFieldName(context.getContextContainer()), METHOD_ERROR_EXCEPTION_HANDLER,
311311
new StringLiteralExpr(signalName),
312-
new StringLiteralExpr(faultCode),
312+
faultCode != null ? new StringLiteralExpr(faultCode) : new NullLiteralExpr(),
313313
faultVariable.<Expression> map(StringLiteralExpr::new)
314314
.orElse(new NullLiteralExpr())));
315315
});

jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<inMessageRef>_2_InMessage</inMessageRef>
2929
</operation>
3030
</interface>
31-
<process id="BPMN2-ErrorBoundaryEventOnServiceTask" tns:version="1" tns:packageName="defaultPackage" tns:adHoc="false" name="Default Process" isExecutable="true">
31+
<process id="ErrorBoundaryEventOnServiceTask" tns:version="1" tns:packageName="org.jbpm.bpmn2.error" tns:adHoc="false" name="Default Process" isExecutable="true">
3232
<property id="s" itemSubjectRef="_sItem"/>
3333
<startEvent id="StartEvent_1" name="start">
3434
<outgoing>SequenceFlow_4</outgoing>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:tns="http://www.jboss.org/drools" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="Definition" expressionLanguage="http://www.mvel.org/2.0" typeLanguage="http://www.java.com/javaTypes">
2222
<signal id="_521345a9-fb57-3f52-917f-27be6e0673ee" name="MySignal"/>
2323
<itemDefinition id="_xItem" structureRef="String" />
24-
<process id="BoundarySignalWithNameEventOnTaskbpmn2" tns:packageName="org.jbpm.bpmn2.event" name="BoundarySignalOnTask" isExecutable="true" processType="Private">
24+
<process id="BoundarySignalWithNameEventOnTask" tns:packageName="org.jbpm.bpmn2.event" name="BoundarySignalOnTask" isExecutable="true" processType="Private">
2525
<property id="x" itemSubjectRef="_xItem"/>
2626
<startEvent id="_1" name="StartProcess">
2727
<outgoing>SequenceFlow_1</outgoing>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class BrokenStructureRefTest {
3131

3232
@Test
3333
public void testProcessWithBrokenItemDefinitionUri() throws Exception {
34-
String inputBpmn = getClass().getResource("/BPMN2-BrokenStructureRef.bpmn2").getPath();
34+
String inputBpmn = getClass().getResource("/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2").getPath();
3535
XmlProcessDumper dumper = XmlProcessDumperFactory.getXmlProcessDumperFactoryService().newXmlProcessDumper();
3636
assertThat(dumper).isNotNull();
3737
String processXml = new String(Files.readAllBytes(Paths.get(inputBpmn)));

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

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
import org.jbpm.bpmn2.error.EndErrorProcess;
2828
import org.jbpm.bpmn2.error.ErrorVariableModel;
2929
import org.jbpm.bpmn2.error.ErrorVariableProcess;
30+
import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel;
31+
import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess;
32+
import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel;
33+
import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess;
34+
import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingModel;
35+
import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingProcess;
3036
import org.jbpm.bpmn2.handler.ServiceTaskHandler;
3137
import org.jbpm.bpmn2.handler.SignallingTaskHandlerDecorator;
3238
import org.jbpm.bpmn2.objects.ExceptionOnPurposeHandler;
@@ -394,35 +400,56 @@ public void testBoundaryErrorEventDefaultHandlerWithErrorCodeWithoutStructureRef
394400

395401
@Test
396402
public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef() throws Exception {
397-
kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2");
403+
Application app = ProcessTestHelper.newApplication();
404+
EventTrackerProcessListener listener = new EventTrackerProcessListener();
398405
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
399-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);
406+
ProcessTestHelper.registerHandler(app, "Human Task", handler);
407+
ProcessTestHelper.registerProcessEventListener(app, listener);
408+
org.kie.kogito.process.Process<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel> definition =
409+
BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess.newProcess(app);
410+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel> instance = definition.createInstance(definition.createModel());
411+
instance.start();
400412

401-
KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello");
413+
assertThat(listener.tracked())
414+
.anyMatch(ProcessTestHelper.triggered("Start"))
415+
.anyMatch(ProcessTestHelper.triggered("User Task"))
416+
.anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent"));
402417

403-
assertNodeTriggered(processInstance.getStringId(), "Start", "User Task", "MyBoundaryErrorEvent");
404418
}
405419

406420
@Test
407421
public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef() throws Exception {
408-
kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2");
409-
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
410-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);
411422

412-
KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello");
423+
Application app = ProcessTestHelper.newApplication();
424+
EventTrackerProcessListener listener = new EventTrackerProcessListener();
425+
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
426+
ProcessTestHelper.registerHandler(app, "Human Task", handler);
427+
ProcessTestHelper.registerProcessEventListener(app, listener);
428+
org.kie.kogito.process.Process<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel> definition =
429+
BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess.newProcess(app);
430+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel> instance = definition.createInstance(definition.createModel());
431+
instance.start();
413432

414-
assertNodeTriggered(processInstance.getStringId(), "Start", "User Task", "MyBoundaryErrorEvent");
433+
assertThat(listener.tracked())
434+
.anyMatch(ProcessTestHelper.triggered("Start"))
435+
.anyMatch(ProcessTestHelper.triggered("User Task"))
436+
.anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent"));
415437
}
416438

417439
@Test
418440
public void testBoundaryErrorEventSubProcessExceptionMapping() throws Exception {
419-
kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2");
441+
Application app = ProcessTestHelper.newApplication();
420442
ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler();
421-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler);
443+
ProcessTestHelper.registerHandler(app, "Human Task", handler);
444+
org.kie.kogito.process.Process<BoundaryErrorEventSubProcessExceptionMappingModel> definition =
445+
BoundaryErrorEventSubProcessExceptionMappingProcess.newProcess(app);
446+
org.kie.kogito.process.ProcessInstance<BoundaryErrorEventSubProcessExceptionMappingModel> instance = definition.createInstance(definition.createModel());
447+
instance.start();
422448

423-
KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello");
449+
assertThat(instance.variables().getVar1())
450+
.isNotNull()
451+
.isInstanceOf(RuntimeException.class);
424452

425-
assertThat(getProcessVarValue(processInstance, "var1")).isEqualTo("java.lang.RuntimeException");
426453
}
427454

428455
@Test

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

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationModel;
3232
import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess;
33+
import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskModel;
34+
import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskProcess;
3335
import org.jbpm.bpmn2.handler.ReceiveTaskHandler;
3436
import org.jbpm.bpmn2.handler.SendTaskHandler;
3537
import org.jbpm.bpmn2.intermediate.IntermediateThrowEventSignalModel;
@@ -65,6 +67,7 @@
6567
import org.kie.kogito.process.EventDescription;
6668
import org.kie.kogito.process.NamedDataType;
6769
import org.kie.kogito.process.ProcessInstance;
70+
import org.kie.kogito.process.impl.Sig;
6871
import org.kie.kogito.process.workitems.InternalKogitoWorkItem;
6972

7073
import static org.assertj.core.api.Assertions.assertThat;
@@ -212,15 +215,18 @@ public void testSignalBoundaryEventOnTask() throws Exception {
212215

213216
@Test
214217
public void testSignalBoundaryEventOnTaskWithSignalName() throws Exception {
215-
kruntime = createKogitoProcessRuntime("BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn");
216218

217-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
218-
new TestWorkItemHandler());
219-
kruntime.getProcessEventManager().addEventListener(LOGGING_EVENT_LISTENER);
220-
KogitoProcessInstance processInstance = kruntime
221-
.startProcess("BoundarySignalOnTask");
222-
kruntime.signalEvent("MySignal", "value");
223-
assertProcessInstanceFinished(processInstance, kruntime);
219+
Application app = ProcessTestHelper.newApplication();
220+
221+
ProcessTestHelper.registerHandler(app, "Human Task", new TestWorkItemHandler());
222+
ProcessTestHelper.registerProcessEventListener(app, LOGGING_EVENT_LISTENER);
223+
org.kie.kogito.process.Process<BoundarySignalWithNameEventOnTaskModel> definition =
224+
BoundarySignalWithNameEventOnTaskProcess.newProcess(app);
225+
org.kie.kogito.process.ProcessInstance<BoundarySignalWithNameEventOnTaskModel> instance = definition.createInstance(definition.createModel());
226+
instance.start();
227+
228+
instance.send(Sig.of("MySignal", "value"));
229+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
224230

225231
}
226232

jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java

Lines changed: 38 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,29 @@
1919
package org.jbpm.bpmn2.structureref;
2020

2121
import java.io.StringReader;
22+
import java.util.Collections;
2223
import java.util.HashMap;
2324
import java.util.Map;
2425

2526
import org.jbpm.bpmn2.JbpmBpmn2TestCase;
27+
import org.jbpm.bpmn2.flow.BooleanStructureRefModel;
28+
import org.jbpm.bpmn2.flow.BooleanStructureRefProcess;
2629
import org.jbpm.bpmn2.objects.Person;
2730
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
28-
import org.jbpm.process.core.context.variable.VariableScope;
2931
import org.jbpm.process.core.datatype.impl.coverter.TypeConverterRegistry;
32+
import org.jbpm.test.utils.ProcessTestHelper;
3033
import org.junit.jupiter.api.Test;
34+
import org.kie.kogito.Application;
3135
import org.kie.kogito.internal.process.runtime.KogitoProcessInstance;
32-
33-
import jakarta.xml.bind.JAXBContext;
34-
import jakarta.xml.bind.JAXBException;
36+
import org.kie.kogito.process.bpmn2.BpmnVariables;
3537

3638
import static org.assertj.core.api.Assertions.assertThat;
3739
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
3840
import static org.assertj.core.api.Assertions.fail;
3941

42+
import jakarta.xml.bind.JAXBContext;
43+
import jakarta.xml.bind.JAXBException;
44+
4045
public class StructureRefTest extends JbpmBpmn2TestCase {
4146

4247
@Test
@@ -59,20 +64,19 @@ public void testStringStructureRef() throws Exception {
5964

6065
@Test
6166
public void testBooleanStructureRef() throws Exception {
62-
kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
67+
Application app = ProcessTestHelper.newApplication();
6368

6469
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
65-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
66-
workItemHandler);
67-
KogitoProcessInstance processInstance = kruntime.startProcess("StructureRef");
68-
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
70+
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
71+
org.kie.kogito.process.Process<BooleanStructureRefModel> definition = BooleanStructureRefProcess.newProcess(app);
6972

70-
Map<String, Object> res = new HashMap<>();
71-
res.put("testHT", "true");
72-
kruntime.getKogitoWorkItemManager().completeWorkItem(
73-
workItemHandler.getWorkItem().getStringId(), res);
73+
org.kie.kogito.process.ProcessInstance<BooleanStructureRefModel> instance = definition.createInstance(definition.createModel());
74+
instance.start();
75+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
7476

75-
assertProcessInstanceCompleted(processInstance.getStringId(), kruntime);
77+
ProcessTestHelper.completeWorkItem(instance, "john", Collections.singletonMap("testHT", "true"));
78+
79+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
7680
}
7781

7882
@Test
@@ -161,29 +165,29 @@ public void testDefaultObjectStructureRef() throws Exception {
161165

162166
@Test
163167
public void testNotExistingVarBooleanStructureRefOnStart() throws Exception {
164-
kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
168+
Application app = ProcessTestHelper.newApplication();
165169

166170
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
167-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
168-
workItemHandler);
169-
170-
Map<String, Object> params = new HashMap<>();
171-
params.put("not existing", "invalid boolean");
172-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> kruntime.startProcess("StructureRef", params));
171+
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
172+
org.kie.kogito.process.Process<BooleanStructureRefModel> definition = BooleanStructureRefProcess.newProcess(app);
173+
org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("not existing", "invalid boolean"));
174+
org.kie.kogito.process.ProcessInstance<? extends org.kie.kogito.Model> instance = definition.createInstance(model);
175+
assertThat(instance.variables().toMap()).doesNotContainKey("non existing");
173176

174177
}
175178

176179
@Test
177180
public void testInvalidBooleanStructureRefOnStart() throws Exception {
178-
kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
181+
Application app = ProcessTestHelper.newApplication();
179182

180183
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
181-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
182-
workItemHandler);
184+
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
185+
org.kie.kogito.process.Process<BooleanStructureRefModel> definition = BooleanStructureRefProcess.newProcess(app);
186+
org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("test", "invalid boolean"));
183187

184-
Map<String, Object> params = new HashMap<>();
185-
params.put("test", "invalid boolean");
186-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> kruntime.startProcess("StructureRef", params));
188+
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> {
189+
org.kie.kogito.process.ProcessInstance<? extends org.kie.kogito.Model> instance = definition.createInstance(model);
190+
});
187191
}
188192

189193
@Test
@@ -213,38 +217,21 @@ public void testInvalidBooleanStructureRefOnWIComplete() throws Exception {
213217

214218
@Test
215219
public void testInvalidBooleanStructureRefOnStartVerifyErrorMsg() throws Exception {
216-
kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
220+
Application app = ProcessTestHelper.newApplication();
217221

218222
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
219-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
220-
workItemHandler);
223+
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
224+
org.kie.kogito.process.Process<BooleanStructureRefModel> definition = BooleanStructureRefProcess.newProcess(app);
225+
org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("test", "invalid boolean"));
226+
221227
try {
222-
Map<String, Object> params = new HashMap<>();
223-
params.put("test", "invalid boolean");
224-
kruntime.startProcess("StructureRef", params);
228+
definition.createInstance(model);
225229
} catch (IllegalArgumentException e) {
226-
assertThat(e.getMessage()).isEqualTo("Variable 'test' has incorrect data type expected:java.lang.Boolean actual:java.lang.String");
230+
assertThat(e.getMessage()).isEqualTo("Can not set java.lang.Boolean field org.jbpm.bpmn2.flow.BooleanStructureRefModel.test to java.lang.String");
227231
}
228232

229233
}
230234

231-
@Test
232-
public void testInvalidBooleanStructureRefOnStartWithDisabledCheck() throws Exception {
233-
// Temporarily disable check for variables strict that is enabled by default for tests
234-
VariableScope.setVariableStrictOption(false);
235-
kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2");
236-
237-
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
238-
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task",
239-
workItemHandler);
240-
241-
Map<String, Object> params = new HashMap<>();
242-
params.put("test", "invalid boolean");
243-
kruntime.startProcess("StructureRef", params);
244-
// enable it back for other tests
245-
VariableScope.setVariableStrictOption(true);
246-
}
247-
248235
@Test
249236
public void testNotExistingBooleanStructureRefOnWIComplete() throws Exception {
250237
kruntime = createKogitoProcessRuntime("BPMN2-IntegerStructureRef.bpmn2");

0 commit comments

Comments
 (0)