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]