From 885834c75023babf6c2ec26137937a8431231d78 Mon Sep 17 00:00:00 2001 From: Abhiram Gundala <164050036+Abhitocode@users.noreply.github.com> Date: Fri, 9 Aug 2024 05:48:48 -0400 Subject: [PATCH] [incubator-kie-issues-1131] v7 migration to code generation (#3596) --- .../java/org/jbpm/bpmn2/EndEventTest.java | 198 ++++++++++-------- 1 file changed, 110 insertions(+), 88 deletions(-) diff --git a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EndEventTest.java b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EndEventTest.java index ee949594ca3..bfed716fa30 100755 --- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EndEventTest.java +++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EndEventTest.java @@ -19,58 +19,83 @@ package org.jbpm.bpmn2; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; +import org.jbpm.bpmn2.escalation.EscalationEndEventModel; +import org.jbpm.bpmn2.escalation.EscalationEndEventProcess; +import org.jbpm.bpmn2.event.EndEventSignalWithDataModel; +import org.jbpm.bpmn2.event.EndEventSignalWithDataProcess; +import org.jbpm.bpmn2.event.ErrorEndEventModel; +import org.jbpm.bpmn2.event.ErrorEndEventProcess; import org.jbpm.bpmn2.event.MessageEndEventModel; import org.jbpm.bpmn2.event.MessageEndEventProcess; +import org.jbpm.bpmn2.event.OnEntryExitDesignerScriptProcessModel; +import org.jbpm.bpmn2.event.OnEntryExitDesignerScriptProcessProcess; +import org.jbpm.bpmn2.event.OnEntryExitMixedNamespacedScriptProcessModel; +import org.jbpm.bpmn2.event.OnEntryExitMixedNamespacedScriptProcessProcess; +import org.jbpm.bpmn2.event.OnEntryExitNamespacedScriptProcessModel; +import org.jbpm.bpmn2.event.OnEntryExitNamespacedScriptProcessProcess; +import org.jbpm.bpmn2.event.OnEntryExitScriptProcessModel; +import org.jbpm.bpmn2.event.OnEntryExitScriptProcessProcess; +import org.jbpm.bpmn2.event.ParallelSplitModel; +import org.jbpm.bpmn2.event.ParallelSplitProcess; +import org.jbpm.bpmn2.event.ParallelSplitTerminateModel; +import org.jbpm.bpmn2.event.ParallelSplitTerminateProcess; +import org.jbpm.bpmn2.event.SignalEndEventModel; +import org.jbpm.bpmn2.event.SignalEndEventProcess; +import org.jbpm.bpmn2.event.SubprocessWithParallelSplitTerminateModel; +import org.jbpm.bpmn2.event.SubprocessWithParallelSplitTerminateProcess; import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler; import org.jbpm.test.utils.ProcessTestHelper; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.kie.kogito.Application; import org.kie.kogito.event.impl.MessageProducer; import org.kie.kogito.internal.process.runtime.KogitoProcessInstance; +import org.kie.kogito.process.ProcessInstance; +import org.kie.kogito.process.impl.Sig; import static org.assertj.core.api.Assertions.assertThat; public class EndEventTest extends JbpmBpmn2TestCase { @Test - public void testImplicitEndParallel() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event/BPMN2-ParallelSplit.bpmn2"); - KogitoProcessInstance processInstance = kruntime.startProcess("ParallelSplit"); - assertProcessInstanceCompleted(processInstance); - + public void testImplicitEndParallel() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = ParallelSplitProcess.newProcess(app); + ProcessInstance processInstance = process.createInstance(process.createModel()); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_COMPLETED); } @Test - public void testErrorEndEventProcess() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event/BPMN2-ErrorEndEvent.bpmn2"); - KogitoProcessInstance processInstance = kruntime - .startProcess("ErrorEndEvent"); - assertProcessInstanceAborted(processInstance); - assertThat(((org.jbpm.process.instance.ProcessInstance) processInstance).getOutcome()).isEqualTo("error"); - + public void testErrorEndEventProcess() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = ErrorEndEventProcess.newProcess(app); + ProcessInstance processInstance = process.createInstance(process.createModel()); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.kie.api.runtime.process.ProcessInstance.STATE_ABORTED); + assertThat(((org.kie.kogito.process.impl.AbstractProcessInstance) processInstance) + .internalGetProcessInstance().getOutcome()).isEqualTo("error"); } @Test - public void testEscalationEndEventProcess() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/escalation/BPMN2-EscalationEndEvent.bpmn2"); - KogitoProcessInstance processInstance = kruntime - .startProcess("EscalationEndEvent"); - assertProcessInstanceAborted(processInstance); + public void testEscalationEndEventProcess() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = EscalationEndEventProcess.newProcess(app); + ProcessInstance processInstance = process.createInstance(process.createModel()); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_ABORTED); } @Test - public void testSignalEnd() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event/BPMN2-SignalEndEvent.bpmn2"); - Map params = new HashMap<>(); - params.put("x", "MyValue"); - kruntime.startProcess("SignalEndEvent", params); - + public void testSignalEnd() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = SignalEndEventProcess.newProcess(app); + SignalEndEventModel model = process.createModel(); + model.setX("MyValue"); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); } @Test @@ -94,94 +119,91 @@ public void produce(KogitoProcessInstance pi, String eventData) { } @Test - @Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067") - public void testOnEntryExitScript() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-OnEntryExitScriptProcess.bpmn2"); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("MyTask", - new SystemOutWorkItemHandler()); + public void testOnEntryExitScript() { + Application app = ProcessTestHelper.newApplication(); + ProcessTestHelper.registerHandler(app, "MyTask", new SystemOutWorkItemHandler()); + org.kie.kogito.process.Process process = OnEntryExitScriptProcessProcess.newProcess(app); + OnEntryExitScriptProcessModel model = process.createModel(); List myList = new ArrayList<>(); - kruntime.getKieSession().setGlobal("list", myList); - KogitoProcessInstance processInstance = kruntime - .startProcess("OnEntryExitScriptProcess"); - assertProcessInstanceCompleted(processInstance); + model.setList(myList); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_COMPLETED); assertThat(myList).hasSize(4); - } @Test - @Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067") - public void testOnEntryExitNamespacedScript() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-OnEntryExitNamespacedScriptProcess.bpmn2"); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("MyTask", - new SystemOutWorkItemHandler()); + public void testOnEntryExitNamespacedScript() { + Application app = ProcessTestHelper.newApplication(); + ProcessTestHelper.registerHandler(app, "MyTask", new SystemOutWorkItemHandler()); + org.kie.kogito.process.Process process = OnEntryExitNamespacedScriptProcessProcess.newProcess(app); + OnEntryExitNamespacedScriptProcessModel model = process.createModel(); List myList = new ArrayList<>(); - kruntime.getKieSession().setGlobal("list", myList); - KogitoProcessInstance processInstance = kruntime - .startProcess("OnEntryExitScriptProcess"); - assertProcessInstanceCompleted(processInstance); + model.setList(myList); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_COMPLETED); assertThat(myList).hasSize(4); - } @Test - @Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067") - public void testOnEntryExitMixedNamespacedScript() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-OnEntryExitMixedNamespacedScriptProcess.bpmn2"); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("MyTask", - new SystemOutWorkItemHandler()); + public void testOnEntryExitMixedNamespacedScript() { + Application app = ProcessTestHelper.newApplication(); + ProcessTestHelper.registerHandler(app, "MyTask", new SystemOutWorkItemHandler()); + org.kie.kogito.process.Process process = OnEntryExitMixedNamespacedScriptProcessProcess.newProcess(app); + OnEntryExitMixedNamespacedScriptProcessModel model = process.createModel(); List myList = new ArrayList<>(); - kruntime.getKieSession().setGlobal("list", myList); - KogitoProcessInstance processInstance = kruntime - .startProcess("OnEntryExitScriptProcess"); - assertProcessInstanceCompleted(processInstance); + model.setList(myList); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_COMPLETED); assertThat(myList).hasSize(4); - } @Test - @Disabled("On Exit not supported, see https://issues.redhat.com/browse/KOGITO-2067") - public void testOnEntryExitScriptDesigner() throws Exception { - kruntime = createKogitoProcessRuntime("BPMN2-OnEntryExitDesignerScriptProcess.bpmn2"); - kruntime.getKogitoWorkItemManager().registerWorkItemHandler("MyTask", - new SystemOutWorkItemHandler()); + public void testOnEntryExitScriptDesigner() { + Application app = ProcessTestHelper.newApplication(); + ProcessTestHelper.registerHandler(app, "MyTask", new SystemOutWorkItemHandler()); + org.kie.kogito.process.Process process = OnEntryExitDesignerScriptProcessProcess.newProcess(app); + OnEntryExitDesignerScriptProcessModel model = process.createModel(); List myList = new ArrayList<>(); - kruntime.getKieSession().setGlobal("list", myList); - KogitoProcessInstance processInstance = kruntime - .startProcess("OnEntryExitScriptProcess"); - assertProcessInstanceCompleted(processInstance); + model.setList(myList); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); assertThat(myList).hasSize(4); - } @Test - public void testTerminateWithinSubprocessEnd() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event//BPMN2-SubprocessWithParallelSplitTerminate.bpmn2"); - KogitoProcessInstance processInstance = kruntime.startProcess("SubprocessWithParallelSplitTerminate"); - - kruntime.signalEvent("signal1", null, processInstance.getStringId()); - - assertProcessInstanceCompleted(processInstance); - + public void testTerminateWithinSubprocessEnd() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = SubprocessWithParallelSplitTerminateProcess.newProcess(app); + SubprocessWithParallelSplitTerminateModel model = process.createModel(); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + processInstance.send(Sig.of("signal1", null)); + assertThat(processInstance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); } @Test - public void testTerminateEnd() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event/BPMN2-ParallelSplitTerminate.bpmn2"); - KogitoProcessInstance processInstance = kruntime.startProcess("ParallelSplitTerminate"); - - kruntime.signalEvent("Signal 1", null, processInstance.getStringId()); - - assertProcessInstanceCompleted(processInstance); - + public void testTerminateEnd() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = ParallelSplitTerminateProcess.newProcess(app); + ParallelSplitTerminateModel model = process.createModel(); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + processInstance.send(Sig.of("Signal 1", null)); + assertThat(processInstance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_COMPLETED); } @Test - public void testSignalEndWithData() throws Exception { - kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/event/BPMN2-EndEventSignalWithData.bpmn2"); - Map params = new HashMap<>(); - KogitoProcessInstance processInstance = kruntime.startProcess("EndEventSignalWithData", params); - - assertProcessInstanceCompleted(processInstance); + public void testSignalEndWithData() { + Application app = ProcessTestHelper.newApplication(); + org.kie.kogito.process.Process process = EndEventSignalWithDataProcess.newProcess(app); + EndEventSignalWithDataModel model = process.createModel(); + ProcessInstance processInstance = process.createInstance(model); + processInstance.start(); + assertThat(processInstance.status()).isEqualTo(org.jbpm.process.instance.ProcessInstance.STATE_COMPLETED); } }