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 a31340f960 [incubator-kie-issues-1131] v7 migration to code generation
(#3647)
a31340f960 is described below
commit a31340f960d462613eb8453c9e01655d80302e8b
Author: Abhiram Gundala <[email protected]>
AuthorDate: Fri Aug 30 02:24:50 2024 -0400
[incubator-kie-issues-1131] v7 migration to code generation (#3647)
---
.../test/java/org/jbpm/bpmn2/StartEventTest.java | 228 +++++++++++----------
1 file changed, 115 insertions(+), 113 deletions(-)
diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/StartEventTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/StartEventTest.java
index a5bd46317d..b79e499d85 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/StartEventTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/StartEventTest.java
@@ -31,28 +31,43 @@ import java.util.Map;
import org.jbpm.bpmn2.event.ConditionalStartModel;
import org.jbpm.bpmn2.event.ConditionalStartProcess;
+import org.jbpm.bpmn2.intermediate.IntermediateThrowEventSignalModel;
+import org.jbpm.bpmn2.intermediate.IntermediateThrowEventSignalProcess;
import org.jbpm.bpmn2.objects.NotAvailableGoodsReport;
import org.jbpm.bpmn2.objects.Person;
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
+import org.jbpm.bpmn2.start.MessageStartModel;
+import org.jbpm.bpmn2.start.MessageStartProcess;
+import org.jbpm.bpmn2.start.MultipleEventBasedStartEventProcessProcess;
+import org.jbpm.bpmn2.start.SignalStartModel;
+import org.jbpm.bpmn2.start.SignalStartProcess;
import org.jbpm.bpmn2.start.SignalStartWithTransformationModel;
import org.jbpm.bpmn2.start.SignalStartWithTransformationProcess;
+import org.jbpm.bpmn2.start.StartTimerCycleProcess;
+import org.jbpm.bpmn2.start.StartTimerDurationProcess;
+import org.jbpm.bpmn2.start.TimerStartCycleLegacyModel;
+import org.jbpm.bpmn2.start.TimerStartCycleLegacyProcess;
+import org.jbpm.bpmn2.start.TimerStartDurationModel;
+import org.jbpm.bpmn2.start.TimerStartDurationProcess;
+import org.jbpm.bpmn2.start.TimerStartISOModel;
+import org.jbpm.bpmn2.start.TimerStartISOProcess;
+import org.jbpm.bpmn2.start.TimerStartModel;
+import org.jbpm.bpmn2.start.TimerStartProcess;
import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler;
import org.jbpm.test.util.NodeLeftCountDownProcessEventListener;
import org.jbpm.test.utils.EventTrackerProcessListener;
import org.jbpm.test.utils.ProcessTestHelper;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import org.kie.api.KieServices;
-import org.kie.api.builder.KieRepository;
import org.kie.api.event.process.ProcessStartedEvent;
import org.kie.api.io.Resource;
-import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.process.ProcessInstance;
import org.kie.internal.io.ResourceFactory;
import org.kie.kogito.Application;
import org.kie.kogito.internal.process.event.DefaultKogitoProcessEventListener;
import org.kie.kogito.internal.process.runtime.KogitoProcessInstance;
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
+import org.kie.kogito.process.Process;
import org.kie.kogito.process.impl.Sig;
import org.kie.kogito.process.workitems.InternalKogitoWorkItem;
@@ -94,41 +109,40 @@ public class StartEventTest extends JbpmBpmn2TestCase {
@Test
public void testTimerStartCycleLegacy() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartProcess", 2);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-TimerStartCycleLegacy.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
+ final List<String> startedInstances = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedInstances.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
}
});
- logger.debug("About to start ###### " + new Date());
+ org.kie.kogito.process.Process<TimerStartCycleLegacyModel> definition
= TimerStartCycleLegacyProcess.newProcess(app);
- assertThat(list).isEmpty();
- // then wait 5 times 5oo ms as that is period configured on the process
+ logger.debug("About to start ###### {}", new Date());
+ assertThat(startedInstances).isEmpty();
countDownListener.waitTillCompleted();
-
assertThat(getNumberOfProcessInstances("TimerStartCycleLegacy")).isEqualTo(2);
-
+ assertThat(startedInstances).hasSize(2);
}
@Test
public void testTimerStart() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartProcess", 5);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-TimerStart.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
+ final List<String> startedInstances = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedInstances.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
}
});
- assertThat(list).isEmpty();
+ org.kie.kogito.process.Process<TimerStartModel> definition =
TimerStartProcess.newProcess(app);
+ assertThat(startedInstances).isEmpty();
countDownListener.waitTillCompleted();
- assertThat(getNumberOfProcessInstances("TimerStart")).isEqualTo(5);
-
+ assertThat(startedInstances).hasSize(5);
}
@Test
@@ -161,120 +175,115 @@ public class StartEventTest extends JbpmBpmn2TestCase {
@Test
public void testTimerStartCycleISO() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartProcess", 6);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-TimerStartISO.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
+ final List<String> startedInstances = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedInstances.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
}
});
- assertThat(list).isEmpty();
+ org.kie.kogito.process.Process<TimerStartISOModel> definition =
TimerStartISOProcess.newProcess(app);
+ assertThat(startedInstances).isEmpty();
countDownListener.waitTillCompleted();
- assertThat(getNumberOfProcessInstances("TimerStartISO")).isEqualTo(6);
-
+ assertThat(startedInstances).hasSize(6);
}
@Test
public void testTimerStartDuration() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartProcess", 1);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-TimerStartDuration.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
+ final List<String> startedInstances = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedInstances.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
}
});
-
- assertThat(list).isEmpty();
-
+ org.kie.kogito.process.Process<TimerStartDurationModel> definition =
TimerStartDurationProcess.newProcess(app);
+ assertThat(startedInstances).isEmpty();
countDownListener.waitTillCompleted();
-
-
assertThat(getNumberOfProcessInstances("TimerStartDuration")).isEqualTo(1);
-
+ assertThat(startedInstances).hasSize(1);
}
@Test
public void testSignalToStartProcess() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-SignalStart.bpmn2",
-
"org/jbpm/bpmn2/start/BPMN2-IntermediateThrowEventSignal.bpmn2");
+ Application app = ProcessTestHelper.newApplication();
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- handler);
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
final List<String> startedProcesses = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
-
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
startedProcesses.add(event.getProcessInstance().getProcessId());
}
});
- KogitoProcessInstance processInstance = kruntime
- .startProcess("IntermediateThrowEventSignal");
- assertProcessInstanceFinished(processInstance, kruntime);
- assertThat(getNumberOfProcessInstances("SignalStart")).isEqualTo(1);
-
assertThat(getNumberOfProcessInstances("IntermediateThrowEventSignal")).isEqualTo(1);
+ Process<SignalStartModel> signalStartProcess =
SignalStartProcess.newProcess(app);
+ org.kie.kogito.process.Process<IntermediateThrowEventSignalModel>
throwEventProcess = IntermediateThrowEventSignalProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<IntermediateThrowEventSignalModel>
processInstance =
throwEventProcess.createInstance(throwEventProcess.createModel());
+ processInstance.start();
+
+
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(startedProcesses).hasSize(2);
+
assertThat(startedProcesses).containsExactly("IntermediateThrowEventSignal",
"SignalStart");
+
}
@Test
public void testSignalStart() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-SignalStart.bpmn2");
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ Application app = ProcessTestHelper.newApplication();
+ final List<ProcessInstance> startedProcesses = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedProcesses.add(event.getProcessInstance());
}
});
- kruntime.signalEvent("MySignal", "NewValue");
-
- assertThat(getNumberOfProcessInstances("SignalStart")).isEqualTo(1);
-
+ org.kie.kogito.process.Process<SignalStartModel> definition =
SignalStartProcess.newProcess(app);
+ definition.send(Sig.of("MySignal", "NewValue"));
+ assertThat(startedProcesses).hasSize(1);
+
assertThat(startedProcesses).extracting(ProcessInstance::getProcessId).containsExactly("SignalStart");
}
@Test
public void testSignalStartDynamic() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-SignalStart.bpmn2");
- // create KieContainer after session was created to make sure no
runtime data
- // will be used during serialization (deep clone)
- KieServices ks = KieServices.Factory.get();
- KieRepository kr = ks.getRepository();
- KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
- kContainer.getKieBase();
-
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ final List<ProcessInstance> startedProcesses = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
- public void beforeProcessStarted(ProcessStartedEvent event) {
- logger.info("{}", ((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ public void afterProcessStarted(ProcessStartedEvent event) {
+ logger.info("{}", event.getProcessInstance().getId());
+ startedProcesses.add(event.getProcessInstance());
}
});
- kruntime.signalEvent("MySignal", "NewValue");
-
- assertThat(getNumberOfProcessInstances("SignalStart")).isEqualTo(1);
- // now remove the process from kbase to make sure runtime based
listeners are removed from signal manager
- kruntime.getKieBase().removeProcess("SignalStart");
-
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> {
- kruntime.signalEvent("MySignal", "NewValue");
- })
- .withMessageContaining("Unknown process ID: SignalStart");
- // must be still one as the process was removed
- assertThat(getNumberOfProcessInstances("SignalStart")).isEqualTo(1);
-
+ org.kie.kogito.process.Process<SignalStartModel> definition =
SignalStartProcess.newProcess(app);
+ definition.send(Sig.of("MySignal", "NewValue"));
+ assertThat(startedProcesses).hasSize(1);
+
assertThat(startedProcesses).extracting(ProcessInstance::getProcessId).containsExactly("SignalStart");
+ definition.deactivate();
+ definition.send(Sig.of("MySignal", "NewValue"));
+ assertThat(startedProcesses).hasSize(2);
+
assertThat(startedProcesses).extracting(ProcessInstance::getProcessId).containsExactly("SignalStart",
"SignalStart");
}
@Test
public void testMessageStart() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-MessageStart.bpmn2");
- kruntime.signalEvent("Message-HelloMessage", "NewValue");
- assertThat(getNumberOfProcessInstances("MessageStart")).isEqualTo(1);
+ Application app = ProcessTestHelper.newApplication();
+ final List<ProcessInstance> startedProcesses = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
+ @Override
+ public void beforeProcessStarted(ProcessStartedEvent event) {
+ startedProcesses.add(event.getProcessInstance());
+ }
+ });
+ org.kie.kogito.process.Process<MessageStartModel> definition =
MessageStartProcess.newProcess(app);
+ definition.send(Sig.of("HelloMessage", "NewValue"));
+ assertThat(startedProcesses).hasSize(1);
}
@Test
@@ -455,37 +464,32 @@ public class StartEventTest extends JbpmBpmn2TestCase {
}
@Test
- public void testMultipleEventBasedStartEventsStartOnTimer()
- throws Exception {
+ public void testMultipleEventBasedStartEventsStartOnTimer() {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartTimer", 2);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-MultipleEventBasedStartEventProcess.bpmn2");
- kruntime.getProcessEventManager().addEventListener(countDownListener);
- TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
- final List<String> list = new ArrayList<>();
- kruntime.getProcessEventManager().addEventListener(new
DefaultKogitoProcessEventListener() {
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
+ final List<ProcessInstance> startedProcesses = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@Override
public void beforeProcessStarted(ProcessStartedEvent event) {
- list.add(((KogitoProcessInstance)
event.getProcessInstance()).getStringId());
+ startedProcesses.add(event.getProcessInstance());
}
});
- assertThat(list).isEmpty();
- // Timer in the process takes 500ms, so after 1 second, there should
be 2 process IDs in the list.
+ MultipleEventBasedStartEventProcessProcess.newProcess(app);
+ assertThat(startedProcesses).isEmpty();
countDownListener.waitTillCompleted();
-
assertThat(getNumberOfProcessInstances("MultipleEventBasedStartEventProcess")).isEqualTo(2);
+ assertThat(startedProcesses).hasSize(2);
}
@Test
- public void testTimerCycle() throws Exception {
+ public void testTimerCycle() {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("start", 5);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-StartTimerCycle.bpmn2");
-
- kruntime.getProcessEventManager().addEventListener(countDownListener);
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
StartCountingListener listener = new StartCountingListener();
- kruntime.getProcessEventManager().addEventListener(listener);
-
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ StartTimerCycleProcess.newProcess(app);
countDownListener.waitTillCompleted();
assertThat(listener.getCount("StartTimerCycle")).isEqualTo(5);
}
@@ -494,7 +498,6 @@ public class StartEventTest extends JbpmBpmn2TestCase {
public void testSignalStartWithTransformation() throws Exception {
Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("StartProcess", 1);
-
ProcessTestHelper.registerProcessEventListener(app, countDownListener);
final List<ProcessInstance> list = new ArrayList<>();
ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
@@ -504,9 +507,7 @@ public class StartEventTest extends JbpmBpmn2TestCase {
}
});
org.kie.kogito.process.Process<SignalStartWithTransformationModel>
definition = SignalStartWithTransformationProcess.newProcess(app);
-
definition.send(Sig.of("MySignal", "NewValue"));
-
countDownListener.waitTillCompleted();
assertThat(list).extracting(e ->
e.getProcessId()).containsExactly("SignalStartWithTransformation");
assertThat(list).extracting(e -> ((KogitoProcessInstance)
e).getVariables()).containsExactly(Collections.singletonMap("x", "NEWVALUE"));
@@ -515,14 +516,15 @@ public class StartEventTest extends JbpmBpmn2TestCase {
/**
* This is how I would expect the start event to work (same as the
recurring event)
*/
+
@Test
public void testTimerDelay() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
NodeLeftCountDownProcessEventListener countDownListener = new
NodeLeftCountDownProcessEventListener("start", 1);
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/start/BPMN2-StartTimerDuration.bpmn2");
-
- kruntime.getProcessEventManager().addEventListener(countDownListener);
+ ProcessTestHelper.registerProcessEventListener(app, countDownListener);
StartCountingListener listener = new StartCountingListener();
- kruntime.getProcessEventManager().addEventListener(listener);
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ StartTimerDurationProcess.newProcess(app);
countDownListener.waitTillCompleted();
assertThat(listener.getCount("StartTimerDuration")).isEqualTo(1);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]