From 50e79a35d4b3472901bfcd46a76bf18e58745373 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Fri, 7 Jun 2024 09:50:55 +0200 Subject: [PATCH 1/8] [incubator-kie-issues-1286] BoundaryEvents v7 support --- ...rorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 | 2 +- ...EventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 | 2 +- .../BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 | 2 +- .../event}/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn | 2 +- .../org/jbpm/bpmn2/event}/BPMN2-BoundaryTimerCycleCron.bpmn2 | 2 +- .../bpmn2/event}/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 | 2 +- .../org/jbpm/bpmn2/flow}/BPMN2-BooleanStructureRef.bpmn2 | 2 +- .../org/jbpm/bpmn2/flow}/BPMN2-BrokenStructureRef.bpmn2 | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 (98%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 (98%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 (98%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn (98%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundaryTimerCycleCron.bpmn2 (97%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/event}/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 (99%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/flow}/BPMN2-BooleanStructureRef.bpmn2 (96%) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/flow}/BPMN2-BrokenStructureRef.bpmn2 (98%) diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 similarity index 98% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 index 5f18c6cfebe..877c96ebe26 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 @@ -26,7 +26,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 similarity index 98% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 index 0d29ebbcaab..470d99feab0 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 @@ -26,7 +26,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 similarity index 98% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 index 0d29ebbcaab..5c77c5460dd 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 @@ -26,7 +26,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn similarity index 98% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn index dda36a9bac5..331bc372913 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn @@ -21,7 +21,7 @@ - + SequenceFlow_1 diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 similarity index 97% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 index ae50cb8a525..93225c62041 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCron.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 @@ -21,7 +21,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 similarity index 99% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 index a82655cc6d9..4e03945ab79 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 @@ -21,7 +21,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2 similarity index 96% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2 index efd2d260d99..f0c429f79dd 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BooleanStructureRef.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BooleanStructureRef.bpmn2 @@ -32,7 +32,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2 similarity index 98% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2 index 14605f2e86a..b96b93bb7ab 100755 --- a/jbpm/jbpm-tests/src/test/resources/BPMN2-BrokenStructureRef.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2 @@ -32,7 +32,7 @@ - + From 13c7b9750f7428d79ca3c5570c7a634788b01a0d Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Fri, 7 Jun 2024 10:17:48 +0200 Subject: [PATCH 2/8] add error boundary --- .../jbpm/bpmn2/error}/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jbpm/jbpm-tests/src/test/{resources => bpmn/org/jbpm/bpmn2/error}/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 (100%) diff --git a/jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 similarity index 100% rename from jbpm/jbpm-tests/src/test/resources/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 From 963750b9efd7983cc2ec32ba8043f8e34ff76852 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Wed, 12 Jun 2024 12:25:13 +0200 Subject: [PATCH 3/8] fix tests --- .../compiler/canonical/ProcessVisitor.java | 1 + ...PMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 2 +- ...N2-BoundarySignalWithNameEventOnTask.bpmn} | 2 +- .../jbpm/bpmn2/BrokenStructureRefTest.java | 2 +- .../java/org/jbpm/bpmn2/ErrorEventTest.java | 53 +++- .../org/jbpm/bpmn2/IntermediateEventTest.java | 21 +- .../bpmn2/structureref/StructureRefTest.java | 86 +++---- ...dlerWithoutErrorCodeWithStructureRef.bpmn2 | 234 ++++++++++++++++++ ...rWithoutErrorCodeWithoutStructureRef.bpmn2 | 234 ++++++++++++++++++ ...ErrorEventSubProcessExceptionMapping.bpmn2 | 234 ++++++++++++++++++ ...PMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 195 +++++++++++++++ 11 files changed, 989 insertions(+), 75 deletions(-) rename jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/{BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn => BPMN2-BoundarySignalWithNameEventOnTask.bpmn} (98%) create mode 100755 jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 create mode 100755 jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 create mode 100755 jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 create mode 100755 jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 diff --git a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java index ee0ac4e0861..39605eafc5e 100644 --- a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java +++ b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java @@ -310,6 +310,7 @@ private void visitContextExceptionScope(Context context, BlockStmt body) { new StringLiteralExpr(signalName), faultCode != null ? new StringLiteralExpr(faultCode) : new NullLiteralExpr(), faultVariable. map(StringLiteralExpr::new).orElse(new NullLiteralExpr()))); + }); } } diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 index 68d9d161fe5..dba07458822 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 @@ -28,7 +28,7 @@ _2_InMessage - + SequenceFlow_4 diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn similarity index 98% rename from jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn index 331bc372913..f459e7f2968 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundarySignalWithNameEventOnTask.bpmn @@ -21,7 +21,7 @@ - + SequenceFlow_1 diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java index cb3ac9e3a31..3207102510b 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/BrokenStructureRefTest.java @@ -31,7 +31,7 @@ public class BrokenStructureRefTest { @Test public void testProcessWithBrokenItemDefinitionUri() throws Exception { - String inputBpmn = getClass().getResource("/BPMN2-BrokenStructureRef.bpmn2").getPath(); + String inputBpmn = getClass().getResource("/org/jbpm/bpmn2/flow/BPMN2-BrokenStructureRef.bpmn2").getPath(); XmlProcessDumper dumper = XmlProcessDumperFactory.getXmlProcessDumperFactoryService().newXmlProcessDumper(); assertThat(dumper).isNotNull(); String processXml = new String(Files.readAllBytes(Paths.get(inputBpmn))); diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java index 6930c8557b5..ae6ca93391a 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java @@ -27,6 +27,12 @@ import org.jbpm.bpmn2.error.EndErrorProcess; import org.jbpm.bpmn2.error.ErrorVariableModel; import org.jbpm.bpmn2.error.ErrorVariableProcess; +import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel; +import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess; +import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefModel; +import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess; +import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingModel; +import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingProcess; import org.jbpm.bpmn2.handler.ServiceTaskHandler; import org.jbpm.bpmn2.handler.SignallingTaskHandlerDecorator; import org.jbpm.bpmn2.objects.ExceptionOnPurposeHandler; @@ -394,35 +400,56 @@ public void testBoundaryErrorEventDefaultHandlerWithErrorCodeWithoutStructureRef @Test public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2"); + Application app = ProcessTestHelper.newApplication(); + EventTrackerProcessListener listener = new EventTrackerProcessListener(); ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler); + ProcessTestHelper.registerHandler(app, "Human Task", handler); + ProcessTestHelper.registerProcessEventListener(app, listener); + org.kie.kogito.process.Process definition = + BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); - KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello"); + assertThat(listener.tracked()) + .anyMatch(ProcessTestHelper.triggered("Start")) + .anyMatch(ProcessTestHelper.triggered("User Task")) + .anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent")); - assertNodeTriggered(processInstance.getStringId(), "Start", "User Task", "MyBoundaryErrorEvent"); } @Test public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2"); - ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler); - KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello"); + Application app = ProcessTestHelper.newApplication(); + EventTrackerProcessListener listener = new EventTrackerProcessListener(); + ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler(); + ProcessTestHelper.registerHandler(app, "Human Task", handler); + ProcessTestHelper.registerProcessEventListener(app, listener); + org.kie.kogito.process.Process definition = + BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); - assertNodeTriggered(processInstance.getStringId(), "Start", "User Task", "MyBoundaryErrorEvent"); + assertThat(listener.tracked()) + .anyMatch(ProcessTestHelper.triggered("Start")) + .anyMatch(ProcessTestHelper.triggered("User Task")) + .anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent")); } @Test public void testBoundaryErrorEventSubProcessExceptionMapping() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2"); + Application app = ProcessTestHelper.newApplication(); ExceptionWorkItemHandler handler = new ExceptionWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler); + ProcessTestHelper.registerHandler(app, "Human Task", handler); + org.kie.kogito.process.Process definition = + BoundaryErrorEventSubProcessExceptionMappingProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); - KogitoProcessInstance processInstance = kruntime.startProcess("com.sample.bpmn.hello"); + assertThat(instance.variables().getVar1()) + .isNotNull() + .isInstanceOf(RuntimeException.class); - assertThat(getProcessVarValue(processInstance, "var1")).isEqualTo("java.lang.RuntimeException"); } @Test diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index 02766944917..62c651a76f2 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -32,6 +32,8 @@ import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationModel; import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess; +import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskModel; +import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskProcess; import org.jbpm.bpmn2.handler.ReceiveTaskHandler; import org.jbpm.bpmn2.handler.SendTaskHandler; import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedModel; @@ -239,15 +241,18 @@ public void testSignalBoundaryEventOnTask() throws Exception { @Test public void testSignalBoundaryEventOnTaskWithSignalName() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BoundarySignalWithNameEventOnTaskbpmn2.bpmn"); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - new TestWorkItemHandler()); - kruntime.getProcessEventManager().addEventListener(LOGGING_EVENT_LISTENER); - KogitoProcessInstance processInstance = kruntime - .startProcess("BoundarySignalOnTask"); - kruntime.signalEvent("MySignal", "value"); - assertProcessInstanceFinished(processInstance, kruntime); + Application app = ProcessTestHelper.newApplication(); + + ProcessTestHelper.registerHandler(app, "Human Task", new TestWorkItemHandler()); + ProcessTestHelper.registerProcessEventListener(app, LOGGING_EVENT_LISTENER); + org.kie.kogito.process.Process definition = + BoundarySignalWithNameEventOnTaskProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); + + instance.send(Sig.of("MySignal", "value")); + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); } diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java index fad2e7fd61f..121c5002be8 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java @@ -24,6 +24,8 @@ import java.util.Map; import org.jbpm.bpmn2.JbpmBpmn2TestCase; +import org.jbpm.bpmn2.flow.BooleanStructureRefModel; +import org.jbpm.bpmn2.flow.BooleanStructureRefProcess; import org.jbpm.bpmn2.flow.DefaultObjectStructureRefModel; import org.jbpm.bpmn2.flow.DefaultObjectStructureRefProcess; import org.jbpm.bpmn2.flow.FloatStructureRefModel; @@ -34,20 +36,20 @@ import org.jbpm.bpmn2.flow.ObjectStructureRefProcess; import org.jbpm.bpmn2.objects.Person; import org.jbpm.bpmn2.objects.TestWorkItemHandler; -import org.jbpm.process.core.context.variable.VariableScope; import org.jbpm.process.core.datatype.impl.coverter.TypeConverterRegistry; import org.jbpm.test.utils.ProcessTestHelper; import org.junit.jupiter.api.Test; import org.kie.kogito.Application; import org.kie.kogito.internal.process.runtime.KogitoProcessInstance; - -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.JAXBException; +import org.kie.kogito.process.bpmn2.BpmnVariables; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.fail; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; + public class StructureRefTest extends JbpmBpmn2TestCase { @Test @@ -70,20 +72,19 @@ public void testStringStructureRef() throws Exception { @Test public void testBooleanStructureRef() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2"); + Application app = ProcessTestHelper.newApplication(); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - workItemHandler); - KogitoProcessInstance processInstance = kruntime.startProcess("StructureRef"); - assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE); + ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler); + org.kie.kogito.process.Process definition = BooleanStructureRefProcess.newProcess(app); - Map res = new HashMap<>(); - res.put("testHT", "true"); - kruntime.getKogitoWorkItemManager().completeWorkItem( - workItemHandler.getWorkItem().getStringId(), res); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE); - assertProcessInstanceCompleted(processInstance.getStringId(), kruntime); + ProcessTestHelper.completeWorkItem(instance, "john", Collections.singletonMap("testHT", "true")); + + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); } @Test @@ -182,29 +183,29 @@ public void testDefaultObjectStructureRef() throws Exception { @Test public void testNotExistingVarBooleanStructureRefOnStart() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2"); + Application app = ProcessTestHelper.newApplication(); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - workItemHandler); - - Map params = new HashMap<>(); - params.put("not existing", "invalid boolean"); - assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> kruntime.startProcess("StructureRef", params)); + ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler); + org.kie.kogito.process.Process definition = BooleanStructureRefProcess.newProcess(app); + org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("not existing", "invalid boolean")); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); + assertThat(instance.variables().toMap()).doesNotContainKey("non existing"); } @Test public void testInvalidBooleanStructureRefOnStart() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2"); + Application app = ProcessTestHelper.newApplication(); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - workItemHandler); + ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler); + org.kie.kogito.process.Process definition = BooleanStructureRefProcess.newProcess(app); + org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("test", "invalid boolean")); - Map params = new HashMap<>(); - params.put("test", "invalid boolean"); - assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> kruntime.startProcess("StructureRef", params)); + assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> { + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); + }); } @Test @@ -234,38 +235,21 @@ public void testInvalidBooleanStructureRefOnWIComplete() throws Exception { @Test public void testInvalidBooleanStructureRefOnStartVerifyErrorMsg() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2"); + Application app = ProcessTestHelper.newApplication(); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - workItemHandler); + ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler); + org.kie.kogito.process.Process definition = BooleanStructureRefProcess.newProcess(app); + org.kie.kogito.Model model = BpmnVariables.create(Collections.singletonMap("test", "invalid boolean")); + try { - Map params = new HashMap<>(); - params.put("test", "invalid boolean"); - kruntime.startProcess("StructureRef", params); + definition.createInstance(model); } catch (IllegalArgumentException e) { - assertThat(e.getMessage()).isEqualTo("Variable 'test' has incorrect data type expected:java.lang.Boolean actual:java.lang.String"); + assertThat(e.getMessage()).isEqualTo("Can not set java.lang.Boolean field org.jbpm.bpmn2.flow.BooleanStructureRefModel.test to java.lang.String"); } } - @Test - public void testInvalidBooleanStructureRefOnStartWithDisabledCheck() throws Exception { - // Temporarily disable check for variables strict that is enabled by default for tests - VariableScope.setVariableStrictOption(false); - kruntime = createKogitoProcessRuntime("BPMN2-BooleanStructureRef.bpmn2"); - - TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", - workItemHandler); - - Map params = new HashMap<>(); - params.put("test", "invalid boolean"); - kruntime.startProcess("StructureRef", params); - // enable it back for other tests - VariableScope.setVariableStrictOption(true); - } - @Test public void testNotExistingBooleanStructureRefOnWIComplete() throws Exception { String wrongDataOutput = "not existing"; diff --git a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 new file mode 100755 index 00000000000..877c96ebe26 --- /dev/null +++ b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef.bpmn2 @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + SequenceFlow_3 + + + SequenceFlow_3 + SequenceFlow_4 + + SequenceFlow_5 + SequenceFlow_6 + + + + + + + + + + + _DataInput_9 + _DataInput_10 + _DataInput_11 + _DataInput_12 + _DataInput_13 + _DataInput_14 + _DataInput_15 + + + + + + _DataInput_9 + + + _DataInput_10 + + + _DataInput_11 + + + _DataInput_12 + + + _DataInput_13 + + + _DataInput_14 + + + _DataInput_15 + + + + SequenceFlow_5 + + + + SequenceFlow_6 + + + + + + + SequenceFlow_7 + + + DataOutput_1 + var1 + + + DataOutput_1 + + + + + SequenceFlow_7 + SequenceFlow_8 + System.out.println("Error is handled : var1 = " + var1); + + + + SequenceFlow_8 + + + + SequenceFlow_4 + SequenceFlow_9 + System.out.println("Process is finishing"); + + + SequenceFlow_9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 new file mode 100755 index 00000000000..470d99feab0 --- /dev/null +++ b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRef.bpmn2 @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + SequenceFlow_3 + + + SequenceFlow_3 + SequenceFlow_4 + + SequenceFlow_5 + SequenceFlow_6 + + + + + + + + + + + _DataInput_9 + _DataInput_10 + _DataInput_11 + _DataInput_12 + _DataInput_13 + _DataInput_14 + _DataInput_15 + + + + + + _DataInput_9 + + + _DataInput_10 + + + _DataInput_11 + + + _DataInput_12 + + + _DataInput_13 + + + _DataInput_14 + + + _DataInput_15 + + + + SequenceFlow_5 + + + + SequenceFlow_6 + + + + + + + SequenceFlow_7 + + + DataOutput_1 + var1 + + + DataOutput_1 + + + + + SequenceFlow_7 + SequenceFlow_8 + System.out.println("Error is handled : var1 = " + var1); + + + + SequenceFlow_8 + + + + SequenceFlow_4 + SequenceFlow_9 + System.out.println("Process is finishing"); + + + SequenceFlow_9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 new file mode 100755 index 00000000000..5c77c5460dd --- /dev/null +++ b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-BoundaryErrorEventSubProcessExceptionMapping.bpmn2 @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + SequenceFlow_3 + + + SequenceFlow_3 + SequenceFlow_4 + + SequenceFlow_5 + SequenceFlow_6 + + + + + + + + + + + _DataInput_9 + _DataInput_10 + _DataInput_11 + _DataInput_12 + _DataInput_13 + _DataInput_14 + _DataInput_15 + + + + + + _DataInput_9 + + + _DataInput_10 + + + _DataInput_11 + + + _DataInput_12 + + + _DataInput_13 + + + _DataInput_14 + + + _DataInput_15 + + + + SequenceFlow_5 + + + + SequenceFlow_6 + + + + + + + SequenceFlow_7 + + + DataOutput_1 + var1 + + + DataOutput_1 + + + + + SequenceFlow_7 + SequenceFlow_8 + System.out.println("Error is handled : var1 = " + var1); + + + + SequenceFlow_8 + + + + SequenceFlow_4 + SequenceFlow_9 + System.out.println("Process is finishing"); + + + SequenceFlow_9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 new file mode 100755 index 00000000000..68d9d161fe5 --- /dev/null +++ b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 @@ -0,0 +1,195 @@ + + + + + + + + + + + _2_InMessage + + + + + + SequenceFlow_4 + + + SequenceFlow_2 + SequenceFlow_6 + + + + + + + + + _DataInput_26 + _DataInput_27 + _DataInput_28 + _DataInput_29 + _DataInput_30 + _DataInput_31 + + + + + _DataInput_26 + + + _DataInput_27 + + + _DataInput_28 + + + _DataInput_29 + + + _DataInput_30 + + + _DataInput_31 + + + + john + + + + + SequenceFlow_3 + SequenceFlow_5 + + + + + _2_param + + + _2_result + + + + s + _2_param + + + _2_result + s + + + + SequenceFlow_4 + SequenceFlow_2 + SequenceFlow_3 + + + + + + SequenceFlow_5 + + + + + SequenceFlow_6 + + + SequenceFlow_7 + + + + SequenceFlow_7 + SequenceFlow_8 + + + + + + SequenceFlow_8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 8ec62720a267b5a70898600639346e89c89b3a1f Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Thu, 13 Jun 2024 16:09:11 +0200 Subject: [PATCH 4/8] add and fix tests --- ...PMN2-ErrorBoundaryEventOnServiceTask.bpmn2 | 2 +- .../event/BPMN2-BoundaryTimerCycleCron.bpmn2 | 2 +- .../java/org/jbpm/bpmn2/ErrorEventTest.java | 43 +++++++++++++------ .../org/jbpm/bpmn2/IntermediateEventTest.java | 33 ++++++++++++++ .../bpmn2/structureref/StructureRefTest.java | 6 +-- 5 files changed, 67 insertions(+), 19 deletions(-) diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 index dba07458822..4d6825d15c4 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/error/BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2 @@ -19,7 +19,7 @@ --> - + diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 index 93225c62041..948d7cb3cf6 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 @@ -69,7 +69,7 @@ _1206D165-6704-439E-99E6-7A02989A8C3C - 0/1 * * * * ? + R3/PT1S diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java index ae6ca93391a..48374b5bd74 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/ErrorEventTest.java @@ -19,12 +19,15 @@ package org.jbpm.bpmn2; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jbpm.bpmn2.error.EndErrorModel; import org.jbpm.bpmn2.error.EndErrorProcess; +import org.jbpm.bpmn2.error.ErrorBoundaryEventOnServiceTaskModel; +import org.jbpm.bpmn2.error.ErrorBoundaryEventOnServiceTaskProcess; import org.jbpm.bpmn2.error.ErrorVariableModel; import org.jbpm.bpmn2.error.ErrorVariableProcess; import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRefModel; @@ -33,7 +36,6 @@ import org.jbpm.bpmn2.event.BoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructureRefProcess; import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingModel; import org.jbpm.bpmn2.event.BoundaryErrorEventSubProcessExceptionMappingProcess; -import org.jbpm.bpmn2.handler.ServiceTaskHandler; import org.jbpm.bpmn2.handler.SignallingTaskHandlerDecorator; import org.jbpm.bpmn2.objects.ExceptionOnPurposeHandler; import org.jbpm.bpmn2.objects.MyError; @@ -50,6 +52,7 @@ import org.kie.api.event.process.ProcessNodeLeftEvent; import org.kie.kogito.Application; import org.kie.kogito.handlers.AlwaysThrowingComponent_throwException__8DA0CD88_0714_43C1_B492_A70FADE42361_Handler; +import org.kie.kogito.handlers.HelloService_helloException_ServiceTask_2_Handler; import org.kie.kogito.handlers.LoggingComponent_logException__E5B0E78B_0112_42F4_89FF_0DCC4FCB6BCD_Handler; import org.kie.kogito.internal.process.event.DefaultKogitoProcessEventListener; import org.kie.kogito.internal.process.event.KogitoProcessEventListener; @@ -226,24 +229,36 @@ public void testErrorBoundaryEventOnTask() throws Exception { @Test public void testErrorBoundaryEventOnServiceTask() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-ErrorBoundaryEventOnServiceTask.bpmn2"); + Application app = ProcessTestHelper.newApplication(); + EventTrackerProcessListener listener = new EventTrackerProcessListener(); + ProcessTestHelper.registerProcessEventListener(app, listener); TestWorkItemHandler handler = new TestWorkItemHandler(); + ProcessTestHelper.registerHandler(app, "Human Task", handler); + ProcessTestHelper.registerHandler(app, "org.jbpm.bpmn2.objects.HelloService_helloException_ServiceTask_2_Handler", new HelloService_helloException_ServiceTask_2_Handler()); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", handler); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler()); - Map params = new HashMap<>(); - params.put("s", "test"); - KogitoProcessInstance processInstance = kruntime.startProcess("BPMN2-ErrorBoundaryEventOnServiceTask", params); + org.kie.kogito.process.Process definition = ErrorBoundaryEventOnServiceTaskProcess.newProcess(app); + + ErrorBoundaryEventOnServiceTaskModel model = definition.createModel(); + model.setS("test"); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); + instance.start(); List workItems = handler.getWorkItems(); assertThat(workItems).hasSize(1); - kruntime.getKogitoWorkItemManager().completeWorkItem(workItems.get(0).getStringId(), null); + ProcessTestHelper.completeWorkItem(instance, "john", Collections.emptyMap()); - assertProcessInstanceFinished(processInstance, kruntime); - assertNodeTriggered(processInstance.getStringId(), "start", "split", "User Task", "Service task error attached", "end0", - "Script Task", "error2"); + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); + + assertThat(listener.tracked()) + .anyMatch(ProcessTestHelper.triggered("start")) + .anyMatch(ProcessTestHelper.triggered("split")) + .anyMatch(ProcessTestHelper.triggered("User Task")) + .anyMatch(ProcessTestHelper.triggered("Service task error attached")) + .anyMatch(ProcessTestHelper.triggered("end0")) + .anyMatch(ProcessTestHelper.triggered("Script Task")) + .anyMatch(ProcessTestHelper.triggered("error2")) + .noneMatch(ProcessTestHelper.triggered("end")); - assertNotNodeTriggered(processInstance.getStringId(), "end"); } @Test @@ -413,7 +428,7 @@ public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithStructureRef assertThat(listener.tracked()) .anyMatch(ProcessTestHelper.triggered("Start")) .anyMatch(ProcessTestHelper.triggered("User Task")) - .anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent")); + .anyMatch(ProcessTestHelper.left("MyBoundaryErrorEvent")); } @@ -433,7 +448,7 @@ public void testBoundaryErrorEventDefaultHandlerWithoutErrorCodeWithoutStructure assertThat(listener.tracked()) .anyMatch(ProcessTestHelper.triggered("Start")) .anyMatch(ProcessTestHelper.triggered("User Task")) - .anyMatch(ProcessTestHelper.triggered("MyBoundaryErrorEvent")); + .anyMatch(ProcessTestHelper.left("MyBoundaryErrorEvent")); } @Test diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index 62c651a76f2..7550eb24f27 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -21,6 +21,7 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -34,6 +35,10 @@ import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess; import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskModel; import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskProcess; +import org.jbpm.bpmn2.event.BoundaryTimerCycleCronModel; +import org.jbpm.bpmn2.event.BoundaryTimerCycleCronProcess; +import org.jbpm.bpmn2.event.BoundaryTimerCycleCronVariableModel; +import org.jbpm.bpmn2.event.BoundaryTimerCycleCronVariableProcess; import org.jbpm.bpmn2.handler.ReceiveTaskHandler; import org.jbpm.bpmn2.handler.SendTaskHandler; import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedModel; @@ -68,6 +73,7 @@ import org.jbpm.process.instance.event.listeners.RuleAwareProcessEventListener; import org.jbpm.process.instance.impl.demo.DoNothingWorkItemHandler; import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler; +import org.jbpm.test.util.NodeCountDownProcessEventListener; import org.jbpm.test.util.NodeLeftCountDownProcessEventListener; import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener; import org.jbpm.test.utils.EventTrackerProcessListener; @@ -130,6 +136,33 @@ public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { * TESTS! */ + @Test + public void testBoundaryTimerCycleCron() { + Application app = ProcessTestHelper.newApplication(); + NodeCountDownProcessEventListener listener = new NodeCountDownProcessEventListener("Send Update", 3); + ProcessTestHelper.registerProcessEventListener(app, listener); + org.kie.kogito.process.Process definition = BoundaryTimerCycleCronProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + instance.start(); + listener.waitTillCompleted(); + ProcessTestHelper.completeWorkItem(instance, "john", Collections.emptyMap()); + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); + } + + @Test + public void testBoundaryTimerCycleCronVariable() { + Application app = ProcessTestHelper.newApplication(); + ProcessCompletedCountDownProcessEventListener listener = new ProcessCompletedCountDownProcessEventListener(); + ProcessTestHelper.registerProcessEventListener(app, listener); + org.kie.kogito.process.Process definition = BoundaryTimerCycleCronVariableProcess.newProcess(app); + BoundaryTimerCycleCronVariableModel model = definition.createModel(); + model.setCronStr("PT1S"); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); + instance.start(); + listener.waitTillCompleted(); + assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); + } + @Test public void testSignalBoundaryEvent() throws Exception { kruntime = createKogitoProcessRuntime( diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java index 121c5002be8..8042b5f97a3 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/structureref/StructureRefTest.java @@ -43,13 +43,13 @@ import org.kie.kogito.internal.process.runtime.KogitoProcessInstance; import org.kie.kogito.process.bpmn2.BpmnVariables; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.fail; -import jakarta.xml.bind.JAXBContext; -import jakarta.xml.bind.JAXBException; - public class StructureRefTest extends JbpmBpmn2TestCase { @Test From 59e2501fccbbc1945df4d3b66748215c18c404d5 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Fri, 14 Jun 2024 07:48:59 +0200 Subject: [PATCH 5/8] revisited boundary timer tests --- .../NodeCountDownProcessEventListener.java | 9 ++++++ .../instance/node/HumanTaskNodeInstance.java | 2 -- ...pmn2 => BPMN2-BoundaryTimerCycleISO.bpmn2} | 2 +- ...BPMN2-BoundaryTimerCycleISOVariable.bpmn2} | 2 +- .../org/jbpm/bpmn2/IntermediateEventTest.java | 28 +++++++++---------- 5 files changed, 25 insertions(+), 18 deletions(-) rename jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/{BPMN2-BoundaryTimerCycleCron.bpmn2 => BPMN2-BoundaryTimerCycleISO.bpmn2} (97%) rename jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/{BPMN2-BoundaryTimerCycleCronVariable.bpmn2 => BPMN2-BoundaryTimerCycleISOVariable.bpmn2} (99%) diff --git a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java index 5b9aa106d2b..0972f746475 100644 --- a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java +++ b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java @@ -20,6 +20,8 @@ import java.util.concurrent.CountDownLatch; +import org.kie.api.event.process.ProcessNodeTriggeredEvent; + public class NodeCountDownProcessEventListener extends DefaultCountDownProcessEventListener { protected String nodeName; @@ -28,6 +30,13 @@ public NodeCountDownProcessEventListener() { } + @Override + public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { + if (nodeName.equals(event.getNodeInstance().getNodeName())) { + countDown(); + } + } + public NodeCountDownProcessEventListener(String nodeName, int threads) { super(threads); this.nodeName = nodeName; diff --git a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java index e9738f7f4af..3c1bc2a3415 100755 --- a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java +++ b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/instance/node/HumanTaskNodeInstance.java @@ -215,14 +215,12 @@ private boolean checkAndReassign(Map timers, @Override protected void addWorkItemListener() { super.addWorkItemListener(); - getProcessInstance().addEventListener(TIMER_TRIGGERED_EVENT, this, false); getProcessInstance().addEventListener(WORK_ITEM_TRANSITION, this, false); } @Override protected void removeWorkItemListener() { super.removeWorkItemListener(); - getProcessInstance().removeEventListener(TIMER_TRIGGERED_EVENT, this, false); getProcessInstance().removeEventListener(WORK_ITEM_TRANSITION, this, false); } diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 similarity index 97% rename from jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 index 948d7cb3cf6..0ee54a18c5e 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCron.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 @@ -21,7 +21,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2 similarity index 99% rename from jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 rename to jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2 index 4e03945ab79..7b63f6cdccf 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleCronVariable.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISOVariable.bpmn2 @@ -21,7 +21,7 @@ - + diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index 7550eb24f27..cef66a72e3b 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -35,10 +35,10 @@ import org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess; import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskModel; import org.jbpm.bpmn2.event.BoundarySignalWithNameEventOnTaskProcess; -import org.jbpm.bpmn2.event.BoundaryTimerCycleCronModel; -import org.jbpm.bpmn2.event.BoundaryTimerCycleCronProcess; -import org.jbpm.bpmn2.event.BoundaryTimerCycleCronVariableModel; -import org.jbpm.bpmn2.event.BoundaryTimerCycleCronVariableProcess; +import org.jbpm.bpmn2.event.BoundaryTimerCycleISOModel; +import org.jbpm.bpmn2.event.BoundaryTimerCycleISOProcess; +import org.jbpm.bpmn2.event.BoundaryTimerCycleISOVariableModel; +import org.jbpm.bpmn2.event.BoundaryTimerCycleISOVariableProcess; import org.jbpm.bpmn2.handler.ReceiveTaskHandler; import org.jbpm.bpmn2.handler.SendTaskHandler; import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedModel; @@ -76,7 +76,6 @@ import org.jbpm.test.util.NodeCountDownProcessEventListener; import org.jbpm.test.util.NodeLeftCountDownProcessEventListener; import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener; -import org.jbpm.test.utils.EventTrackerProcessListener; import org.jbpm.test.utils.ProcessTestHelper; import org.jbpm.test.utils.ProcessTestHelper.CompletionKogitoEventListener; import org.junit.jupiter.api.Disabled; @@ -137,12 +136,12 @@ public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { */ @Test - public void testBoundaryTimerCycleCron() { + public void testBoundaryTimerCycleISO() { Application app = ProcessTestHelper.newApplication(); NodeCountDownProcessEventListener listener = new NodeCountDownProcessEventListener("Send Update", 3); ProcessTestHelper.registerProcessEventListener(app, listener); - org.kie.kogito.process.Process definition = BoundaryTimerCycleCronProcess.newProcess(app); - org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); + org.kie.kogito.process.Process definition = BoundaryTimerCycleISOProcess.newProcess(app); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); instance.start(); listener.waitTillCompleted(); ProcessTestHelper.completeWorkItem(instance, "john", Collections.emptyMap()); @@ -150,16 +149,17 @@ public void testBoundaryTimerCycleCron() { } @Test - public void testBoundaryTimerCycleCronVariable() { + public void testBoundaryTimerCycleISOVariable() { Application app = ProcessTestHelper.newApplication(); - ProcessCompletedCountDownProcessEventListener listener = new ProcessCompletedCountDownProcessEventListener(); + NodeCountDownProcessEventListener listener = new NodeCountDownProcessEventListener("Send Update", 3); ProcessTestHelper.registerProcessEventListener(app, listener); - org.kie.kogito.process.Process definition = BoundaryTimerCycleCronVariableProcess.newProcess(app); - BoundaryTimerCycleCronVariableModel model = definition.createModel(); - model.setCronStr("PT1S"); - org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); + org.kie.kogito.process.Process definition = BoundaryTimerCycleISOVariableProcess.newProcess(app); + BoundaryTimerCycleISOVariableModel model = definition.createModel(); + model.setCronStr("R3/PT1S"); + org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); instance.start(); listener.waitTillCompleted(); + ProcessTestHelper.completeWorkItem(instance, "john", Collections.emptyMap()); assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); } From 42aca8a9bf1c9590834447e5b1d84ffd96e762d8 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Fri, 14 Jun 2024 18:41:31 +0200 Subject: [PATCH 6/8] change to 0.1s duration --- .../bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 | 2 +- .../src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 index 0ee54a18c5e..6ad7b854842 100755 --- a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 +++ b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/event/BPMN2-BoundaryTimerCycleISO.bpmn2 @@ -69,7 +69,7 @@ _1206D165-6704-439E-99E6-7A02989A8C3C - R3/PT1S + R3/PT0.1S diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index cef66a72e3b..41f2500453a 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -155,7 +155,7 @@ public void testBoundaryTimerCycleISOVariable() { ProcessTestHelper.registerProcessEventListener(app, listener); org.kie.kogito.process.Process definition = BoundaryTimerCycleISOVariableProcess.newProcess(app); BoundaryTimerCycleISOVariableModel model = definition.createModel(); - model.setCronStr("R3/PT1S"); + model.setCronStr("R3/PT0.1S"); org.kie.kogito.process.ProcessInstance instance = definition.createInstance(model); instance.start(); listener.waitTillCompleted(); From 436532583d2d5f9802030bc127dea55fe45d117e Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Mon, 17 Jun 2024 09:26:12 +0200 Subject: [PATCH 7/8] fix tests --- ...NodeLeftCountDownProcessEventListener.java | 19 ++++--------------- ...=> NodeTriggeredProcessEventListener.java} | 14 ++++---------- .../org/jbpm/bpmn2/IntermediateEventTest.java | 5 ++--- 3 files changed, 10 insertions(+), 28 deletions(-) rename jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/{NodeCountDownProcessEventListener.java => NodeTriggeredProcessEventListener.java} (72%) diff --git a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java index f2eb0bae104..92e5fb4a535 100644 --- a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java +++ b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeLeftCountDownProcessEventListener.java @@ -20,21 +20,17 @@ import org.kie.api.event.process.ProcessNodeLeftEvent; -public class NodeLeftCountDownProcessEventListener extends NodeCountDownProcessEventListener { +public class NodeLeftCountDownProcessEventListener extends DefaultCountDownProcessEventListener { - private boolean reactOnBeforeNodeLeft = false; + private String nodeName; public NodeLeftCountDownProcessEventListener() { } public NodeLeftCountDownProcessEventListener(String nodeName, int threads) { - super(nodeName, threads); - } - - public NodeLeftCountDownProcessEventListener(String nodeName, int threads, boolean reactOnBeforeNodeLeft) { - super(nodeName, threads); - this.reactOnBeforeNodeLeft = reactOnBeforeNodeLeft; + super(threads); + this.nodeName = nodeName; } @Override @@ -43,11 +39,4 @@ public void afterNodeLeft(ProcessNodeLeftEvent event) { countDown(); } } - - @Override - public void beforeNodeLeft(ProcessNodeLeftEvent event) { - if (reactOnBeforeNodeLeft && nodeName.equals(event.getNodeInstance().getNodeName())) { - countDown(); - } - } } \ No newline at end of file diff --git a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java similarity index 72% rename from jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java rename to jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java index 0972f746475..5de91c0eec1 100644 --- a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeCountDownProcessEventListener.java +++ b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/test/util/NodeTriggeredProcessEventListener.java @@ -18,32 +18,26 @@ */ package org.jbpm.test.util; -import java.util.concurrent.CountDownLatch; - import org.kie.api.event.process.ProcessNodeTriggeredEvent; -public class NodeCountDownProcessEventListener extends DefaultCountDownProcessEventListener { +public class NodeTriggeredProcessEventListener extends DefaultCountDownProcessEventListener { protected String nodeName; - public NodeCountDownProcessEventListener() { + public NodeTriggeredProcessEventListener() { } @Override - public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { + public void afterNodeTriggered(ProcessNodeTriggeredEvent event) { if (nodeName.equals(event.getNodeInstance().getNodeName())) { countDown(); } } - public NodeCountDownProcessEventListener(String nodeName, int threads) { + public NodeTriggeredProcessEventListener(String nodeName, int threads) { super(threads); this.nodeName = nodeName; } - public void reset(String nodeName, int threads) { - this.nodeName = nodeName; - this.latch = new CountDownLatch(threads); - } } \ No newline at end of file diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index 41f2500453a..b9a4f3a1e42 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -73,7 +73,6 @@ import org.jbpm.process.instance.event.listeners.RuleAwareProcessEventListener; import org.jbpm.process.instance.impl.demo.DoNothingWorkItemHandler; import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler; -import org.jbpm.test.util.NodeCountDownProcessEventListener; import org.jbpm.test.util.NodeLeftCountDownProcessEventListener; import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener; import org.jbpm.test.utils.ProcessTestHelper; @@ -138,7 +137,7 @@ public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { @Test public void testBoundaryTimerCycleISO() { Application app = ProcessTestHelper.newApplication(); - NodeCountDownProcessEventListener listener = new NodeCountDownProcessEventListener("Send Update", 3); + NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update", 3); ProcessTestHelper.registerProcessEventListener(app, listener); org.kie.kogito.process.Process definition = BoundaryTimerCycleISOProcess.newProcess(app); org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); @@ -151,7 +150,7 @@ public void testBoundaryTimerCycleISO() { @Test public void testBoundaryTimerCycleISOVariable() { Application app = ProcessTestHelper.newApplication(); - NodeCountDownProcessEventListener listener = new NodeCountDownProcessEventListener("Send Update", 3); + NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update", 3); ProcessTestHelper.registerProcessEventListener(app, listener); org.kie.kogito.process.Process definition = BoundaryTimerCycleISOVariableProcess.newProcess(app); BoundaryTimerCycleISOVariableModel model = definition.createModel(); From c362c3a14a418eb1ea54edbdffc3e45be56d87c1 Mon Sep 17 00:00:00 2001 From: Enrique Gonzalez Martinez Date: Tue, 18 Jun 2024 10:20:43 +0200 Subject: [PATCH 8/8] fix tests --- .../src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java index b9a4f3a1e42..3ea81f5e6f6 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java @@ -75,6 +75,7 @@ import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler; import org.jbpm.test.util.NodeLeftCountDownProcessEventListener; import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener; +import org.jbpm.test.utils.EventTrackerProcessListener; import org.jbpm.test.utils.ProcessTestHelper; import org.jbpm.test.utils.ProcessTestHelper.CompletionKogitoEventListener; import org.junit.jupiter.api.Disabled; @@ -137,7 +138,7 @@ public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { @Test public void testBoundaryTimerCycleISO() { Application app = ProcessTestHelper.newApplication(); - NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update", 3); + NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update Timer", 3); ProcessTestHelper.registerProcessEventListener(app, listener); org.kie.kogito.process.Process definition = BoundaryTimerCycleISOProcess.newProcess(app); org.kie.kogito.process.ProcessInstance instance = definition.createInstance(definition.createModel()); @@ -150,7 +151,7 @@ public void testBoundaryTimerCycleISO() { @Test public void testBoundaryTimerCycleISOVariable() { Application app = ProcessTestHelper.newApplication(); - NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update", 3); + NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("Send Update Timer", 3); ProcessTestHelper.registerProcessEventListener(app, listener); org.kie.kogito.process.Process definition = BoundaryTimerCycleISOVariableProcess.newProcess(app); BoundaryTimerCycleISOVariableModel model = definition.createModel();