This is an automated email from the ASF dual-hosted git repository.

egonzalez pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git


The following commit(s) were added to refs/heads/main by this push:
     new c97fe31132 [incubator-kie-issues-1131] v7 migration to code generation 
(#3622)
c97fe31132 is described below

commit c97fe311320c2cf9f27992ab53ef8402ff8b85ff
Author: Abhiram Gundala <[email protected]>
AuthorDate: Mon Sep 9 08:49:23 2024 -0400

    [incubator-kie-issues-1131] v7 migration to code generation (#3622)
---
 .../java/org/jbpm/bpmn2/SLAComplianceTest.java     | 183 ++++++++++-----------
 1 file changed, 84 insertions(+), 99 deletions(-)

diff --git 
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/SLAComplianceTest.java 
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/SLAComplianceTest.java
index 3b47bb1520..bfe578dde3 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/SLAComplianceTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/SLAComplianceTest.java
@@ -19,21 +19,34 @@
 package org.jbpm.bpmn2;
 
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Collections;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 import org.jbpm.bpmn2.objects.TestWorkItemHandler;
+import org.jbpm.bpmn2.sla.IntermediateCatchEventSignalWithSLAOnEventModel;
+import org.jbpm.bpmn2.sla.IntermediateCatchEventSignalWithSLAOnEventProcess;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAExprModel;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAExprProcess;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAModel;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAOnTaskModel;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAOnTaskProcess;
+import org.jbpm.bpmn2.sla.UserTaskWithSLAProcess;
 import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler;
+import org.jbpm.test.utils.ProcessTestHelper;
 import org.junit.jupiter.api.Test;
 import org.kie.api.event.process.SLAViolatedEvent;
+import org.kie.api.runtime.process.NodeInstance;
+import org.kie.kogito.Application;
 import org.kie.kogito.internal.process.event.DefaultKogitoProcessEventListener;
 import org.kie.kogito.internal.process.event.KogitoProcessEventListener;
 import org.kie.kogito.internal.process.runtime.KogitoNodeInstance;
 import org.kie.kogito.internal.process.runtime.KogitoProcessInstance;
 import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
 import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcessInstance;
+import org.kie.kogito.process.ProcessInstance;
+import org.kie.kogito.process.impl.AbstractProcessInstance;
+import org.kie.kogito.process.impl.Sig;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -81,25 +94,21 @@ public class SLAComplianceTest extends JbpmBpmn2TestCase {
 
     @Test
     public void testSLAonProcessMet() throws Exception {
-        kruntime = 
createKogitoProcessRuntime("org/jbpm/bpmn2/sla/BPMN2-UserTaskWithSLA.bpmn2");
-
+        Application app = ProcessTestHelper.newApplication();
         TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
-        kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human 
Task", workItemHandler);
-        KogitoProcessInstance processInstance = 
kruntime.startProcess("UserTaskWithSLA");
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
+        ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+        org.kie.kogito.process.Process<UserTaskWithSLAModel> processDefinition 
= UserTaskWithSLAProcess.newProcess(app);
+        ProcessInstance<UserTaskWithSLAModel> processInstance = 
processDefinition.createInstance(processDefinition.createModel());
+        processInstance.start();
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
         KogitoWorkItem workItem = workItemHandler.getWorkItem();
         assertThat(workItem).isNotNull();
         assertThat(workItem.getParameter("ActorId")).isEqualTo("john");
-
-        processInstance = 
kruntime.getProcessInstance(processInstance.getStringId());
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
-        
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(), 
null);
-        assertProcessInstanceFinished(processInstance, kruntime);
-
-        int slaCompliance = 
getSLAComplianceForProcessInstance(processInstance);
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_MET);
+        ProcessTestHelper.completeWorkItem(processInstance, 
Collections.emptyMap(), "john");
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+        int slaCompliance = 
((org.kie.kogito.process.impl.AbstractProcessInstance<?>) processInstance)
+                .internalGetProcessInstance().getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_MET);
     }
 
     @Test
@@ -154,39 +163,31 @@ public class SLAComplianceTest extends JbpmBpmn2TestCase {
     }
 
     @Test
-    public void testSLAonUserTaskMet() throws Exception {
-        kruntime = 
createKogitoProcessRuntime("org/jbpm/bpmn2/sla/BPMN2-UserTaskWithSLAOnTask.bpmn2");
-
+    public void testSLAonUserTaskMet() {
+        Application app = ProcessTestHelper.newApplication();
         TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
-        kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human 
Task", workItemHandler);
-        KogitoProcessInstance processInstance = 
kruntime.startProcess("UserTaskWithSLAOnTask");
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
+        ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+        org.kie.kogito.process.Process<UserTaskWithSLAOnTaskModel> 
processDefinition = UserTaskWithSLAOnTaskProcess.newProcess(app);
+        ProcessInstance<UserTaskWithSLAOnTaskModel> processInstance = 
processDefinition.createInstance(processDefinition.createModel());
+        processInstance.start();
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
         KogitoWorkItem workItem = workItemHandler.getWorkItem();
         assertThat(workItem).isNotNull();
         assertThat(workItem.getParameter("ActorId")).isEqualTo("john");
-
-        processInstance = 
kruntime.getProcessInstance(processInstance.getStringId());
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
-        Collection<KogitoNodeInstance> active = 
((KogitoWorkflowProcessInstance) processInstance).getKogitoNodeInstances();
-        assertThat(active).hasSize(1);
-
-        KogitoNodeInstance userTaskNode = active.iterator().next();
-
-        
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(), 
null);
-        assertProcessInstanceFinished(processInstance, kruntime);
-
-        int slaCompliance = 
getSLAComplianceForProcessInstance(processInstance);
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_NA);
-
-        slaCompliance = 
getSLAComplianceForNodeInstance(processInstance.getStringId(), 
(org.jbpm.workflow.instance.NodeInstance) userTaskNode, 0);
-        // Whereas in memory it is already met
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_MET);
-
-        slaCompliance = 
getSLAComplianceForNodeInstance(processInstance.getStringId(), 
(org.jbpm.workflow.instance.NodeInstance) userTaskNode, 1);
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_MET);
-
+        processInstance = 
processDefinition.instances().findById(processInstance.id()).orElse(null);
+        assertThat(processInstance).isNotNull();
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+        Collection<NodeInstance> activeNodes = ((AbstractProcessInstance<?>) 
processInstance)
+                .internalGetProcessInstance().getNodeInstances();
+        assertThat(activeNodes).hasSize(1);
+        org.kie.kogito.internal.process.runtime.KogitoNodeInstance 
userTaskNode = (KogitoNodeInstance) activeNodes.iterator().next();
+        ProcessTestHelper.completeWorkItem(processInstance, 
Collections.emptyMap(), "john");
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+        int slaCompliance = 
((org.kie.kogito.process.impl.AbstractProcessInstance<?>) processInstance)
+                .internalGetProcessInstance().getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_NA);
+        slaCompliance = ((org.jbpm.workflow.instance.NodeInstance) 
userTaskNode).getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_MET);
     }
 
     @Test
@@ -297,44 +298,35 @@ public class SLAComplianceTest extends JbpmBpmn2TestCase {
     public void testSLAonProcessViolatedWithExpression() throws Exception {
         CountDownLatch latch = new CountDownLatch(1);
         final KogitoProcessEventListener listener = new 
DefaultKogitoProcessEventListener() {
-
             @Override
             public void afterSLAViolated(SLAViolatedEvent event) {
                 latch.countDown();
             }
-
         };
-        kruntime = 
createKogitoProcessRuntime("org/jbpm/bpmn2/sla/BPMN2-UserTaskWithSLAExpr.bpmn2");
-
+        Application app = ProcessTestHelper.newApplication();
         TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
-        kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human 
Task", workItemHandler);
-        kruntime.getProcessEventManager().addEventListener(listener);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("s", "3s");
-
-        KogitoProcessInstance processInstance = 
kruntime.startProcess("UserTaskWithSLAExpr", parameters);
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
+        ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+        ProcessTestHelper.registerProcessEventListener(app, listener);
+        org.kie.kogito.process.Process<UserTaskWithSLAExprModel> 
processDefinition = UserTaskWithSLAExprProcess.newProcess(app);
+        UserTaskWithSLAExprModel model = processDefinition.createModel();
+        model.setS("3s");
+        ProcessInstance<UserTaskWithSLAExprModel> processInstance = 
processDefinition.createInstance(model);
+        processInstance.start();
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
         KogitoWorkItem workItem = workItemHandler.getWorkItem();
         assertThat(workItem).isNotNull();
         assertThat(workItem.getParameter("ActorId")).isEqualTo("john");
-
         boolean slaViolated = latch.await(10, TimeUnit.SECONDS);
         assertThat(slaViolated).as("SLA was not violated while it is 
expected").isTrue();
-
-        processInstance = 
kruntime.getProcessInstance(processInstance.getStringId());
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
-        int slaCompliance = 
getSLAComplianceForProcessInstance(processInstance);
-        
assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_VIOLATED);
-
-        
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(), 
null);
-        assertProcessInstanceFinished(processInstance, kruntime);
-
-        slaCompliance = getSLAComplianceForProcessInstance(processInstance);
-        
assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_VIOLATED);
-
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+        int slaCompliance = 
((org.kie.kogito.process.impl.AbstractProcessInstance<?>) processInstance)
+                .internalGetProcessInstance().getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_VIOLATED);
+        ProcessTestHelper.completeWorkItem(processInstance, 
Collections.emptyMap(), "john");
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+        slaCompliance = 
((org.kie.kogito.process.impl.AbstractProcessInstance<?>) processInstance)
+                .internalGetProcessInstance().getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_VIOLATED);
     }
 
     @Test
@@ -427,38 +419,31 @@ public class SLAComplianceTest extends JbpmBpmn2TestCase {
     public void testSLAonCatchEventNotViolated() throws Exception {
         CountDownLatch latch = new CountDownLatch(1);
         final KogitoProcessEventListener listener = new 
DefaultKogitoProcessEventListener() {
-
             @Override
             public void afterSLAViolated(SLAViolatedEvent event) {
                 latch.countDown();
             }
-
         };
-        kruntime = 
createKogitoProcessRuntime("org/jbpm/bpmn2/sla/BPMN2-IntermediateCatchEventSignalWithSLAOnEvent.bpmn2");
-
-        kruntime.getProcessEventManager().addEventListener(listener);
-        kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human 
Task", new SystemOutWorkItemHandler());
-        KogitoProcessInstance processInstance = 
kruntime.startProcess("IntermediateCatchEventSignalWithSLAOnEvent");
-        
assertThat(processInstance.getState()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
-
-        Collection<KogitoNodeInstance> active = 
((KogitoWorkflowProcessInstance) processInstance).getKogitoNodeInstances();
-        assertThat(active).hasSize(1);
-
-        KogitoNodeInstance eventNode = active.iterator().next();
-
-        kruntime.signalEvent("MyMessage", null, processInstance.getStringId());
-
-        assertProcessInstanceFinished(processInstance, kruntime);
-
-        int slaCompliance = 
getSLAComplianceForProcessInstance(processInstance);
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_NA);
-
-        slaCompliance = 
getSLAComplianceForNodeInstance(processInstance.getStringId(), 
(org.jbpm.workflow.instance.NodeInstance) eventNode, 1);
-        assertThat(slaCompliance).isEqualTo(KogitoProcessInstance.SLA_MET);
-
+        Application app = ProcessTestHelper.newApplication();
+        ProcessTestHelper.registerProcessEventListener(app, listener);
+        ProcessTestHelper.registerHandler(app, "Human Task", new 
SystemOutWorkItemHandler());
+        
org.kie.kogito.process.Process<IntermediateCatchEventSignalWithSLAOnEventModel> 
processDefinition = 
IntermediateCatchEventSignalWithSLAOnEventProcess.newProcess(app);
+        ProcessInstance<IntermediateCatchEventSignalWithSLAOnEventModel> 
processInstance = 
processDefinition.createInstance(processDefinition.createModel());
+        processInstance.start();
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
+        Collection<NodeInstance> activeNodes = ((AbstractProcessInstance<?>) 
processInstance)
+                .internalGetProcessInstance().getNodeInstances();
+        assertThat(activeNodes).hasSize(1);
+        org.kie.kogito.internal.process.runtime.KogitoNodeInstance eventNode = 
(KogitoNodeInstance) activeNodes.iterator().next();
+        processInstance.send(Sig.of("MyMessage", null));
+        
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+        int slaCompliance = 
((org.kie.kogito.process.impl.AbstractProcessInstance<?>) processInstance)
+                .internalGetProcessInstance().getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_NA);
+        slaCompliance = ((org.jbpm.workflow.instance.NodeInstance) 
eventNode).getSlaCompliance();
+        
assertThat(slaCompliance).isEqualTo(org.kie.api.runtime.process.ProcessInstance.SLA_MET);
         boolean slaViolated = latch.await(3, TimeUnit.SECONDS);
-        assertThat(slaViolated).as("SLA should not violated by 
timer").isFalse();
-
+        assertThat(slaViolated).as("SLA should not be violated by 
timer").isFalse();
     }
 
     /*


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to