pibizza commented on code in PR #3639:
URL:
https://github.com/apache/incubator-kie-kogito-runtimes/pull/3639#discussion_r1760729636
##########
jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java:
##########
@@ -560,183 +650,230 @@ public void testEventBasedSplit5() throws Exception {
}
@Test
- public void testEventBasedSplitWithSubprocess() throws Exception {
- kruntime = createKogitoProcessRuntime(
-
"org/jbpm/bpmn2/intermediate/BPMN2-ExclusiveEventBasedGatewayInSubprocess.bpmn2");
-
+ public void testEventBasedSplitWithSubprocess() {
+ Application app = ProcessTestHelper.newApplication();
+
org.kie.kogito.process.Process<ExclusiveEventBasedGatewayInSubprocessModel>
processDefinition =
+ ExclusiveEventBasedGatewayInSubprocessProcess.newProcess(app);
+ ExclusiveEventBasedGatewayInSubprocessModel model =
processDefinition.createModel();
+
org.kie.kogito.process.ProcessInstance<ExclusiveEventBasedGatewayInSubprocessModel>
instance =
+ processDefinition.createInstance(model);
// Stop
- KogitoProcessInstance processInstance =
kruntime.startProcess("ExclusiveEventBasedGatewayInSubprocess");
- assertProcessInstanceActive(processInstance);
+ instance.start();
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ instance.send(Sig.of("StopSignal", ""));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+ // Continue and Stop
+ instance = processDefinition.createInstance(model);
+ instance.start();
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ instance.send(Sig.of("ContinueSignal", ""));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ instance.send(Sig.of("StopSignal", ""));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+ }
- kruntime.signalEvent("StopSignal", "", processInstance.getStringId());
- assertProcessInstanceFinished(processInstance, kruntime);
+ @Test
+ public void testEventSubprocessSignal() {
+ String[] nodes = { "start", "User Task 1", "end", "Sub Process 1",
"start-sub", "sub-script", "end-sub" };
+ Application app = ProcessTestHelper.newApplication();
- // Continue and Stop
- processInstance =
kruntime.startProcess("ExclusiveEventBasedGatewayInSubprocess");
- assertProcessInstanceActive(processInstance);
+ TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+ List<String> executedNodes = new ArrayList<>();
- kruntime.signalEvent("ContinueSignal", "",
processInstance.getStringId());
+ KogitoProcessEventListener listener = new
DefaultKogitoProcessEventListener() {
- assertProcessInstanceActive(processInstance);
+ @Override
+ public void afterNodeLeft(ProcessNodeLeftEvent event) {
+ if
(event.getNodeInstance().getNodeName().equals("sub-script")) {
+ executedNodes.add(((KogitoNodeInstance)
event.getNodeInstance()).getStringId());
+ }
+ }
+ };
- kruntime.signalEvent("StopSignal", "", processInstance.getStringId());
- assertProcessInstanceFinished(processInstance, kruntime);
- }
+ EventTrackerProcessListener eventTrackerProcessListener = new
EventTrackerProcessListener();
- @Test
- public void testEventSubprocessSignal() throws Exception {
- String[] nodes = { "start", "User Task 1", "end", "Sub Process 1",
"start-sub", "sub-script", "end-sub" };
-
runTestEventSubprocessSignal("org/jbpm/bpmn2/intermediate/BPMN2-EventSubprocessSignal.bpmn2",
- "EventSubprocessSignal", nodes);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ ProcessTestHelper.registerProcessEventListener(app,
eventTrackerProcessListener);
+
+ org.kie.kogito.process.Process<EventSubprocessSignalModel>
processDefinition = EventSubprocessSignalProcess.newProcess(app);
+ EventSubprocessSignalModel model = processDefinition.createModel();
+ org.kie.kogito.process.ProcessInstance<EventSubprocessSignalModel>
instance = processDefinition.createInstance(model);
+
+ instance.start();
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+
+ Set<EventDescription<?>> eventDescriptions = instance.events();
+ assertThat(eventDescriptions).hasSize(2) // Adjusted to expect two
events
+ .extracting(EventDescription::getEvent)
+ .contains("MySignal", "workItemCompleted");
+
assertThat(eventDescriptions).extracting(EventDescription::getEventType)
+ .contains("signal", "workItem");
+
assertThat(eventDescriptions).extracting(EventDescription::getProcessInstanceId)
+ .contains(instance.id());
+
+ for (int i = 0; i < 4; i++) {
+ instance.send(Sig.of("MySignal"));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ }
+
+ KogitoWorkItem workItem = workItemHandler.getWorkItem();
+ assertThat(workItem).isNotNull();
+ instance.completeWorkItem(workItem.getStringId(), null);
+
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED);
+
assertThatIterable(eventTrackerProcessListener.tracked().stream().map(a ->
a.getNodeInstance().getNodeName()).toList())
Review Comment:
```suggestion
assertThatIterable(eventTrackerProcessListener.tracked()).extracting(a ->
a.getNodeInstance().getNodeName()).contains(nodes);
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]