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]

Reply via email to