Search in sources :

Example 6 with TrackingProcessEventListener

use of org.jbpm.test.listener.TrackingProcessEventListener in project jbpm by kiegroup.

the class SubprocessesTest method testIndependentNoWaitForCompletionAbortParent.

@Test(timeout = 30000)
public void testIndependentNoWaitForCompletionAbortParent() {
    TrackingProcessEventListener listener = new TrackingProcessEventListener();
    ksession.addEventListener(listener);
    IterableProcessEventListener process = new IterableProcessEventListener();
    ksession.addEventListener(process);
    ProcessInstance pi = ksession.startProcess(PROCESS_ID_2, createBranchDefiningMap("nowait"));
    assertChangedVariable(process, "node", null, "nowait");
    assertProcessStarted(process, PROCESS_ID_2);
    assertNextNode(process, P2_START);
    assertNextNode(process, P2_GATEWAY_START);
    assertTriggered(process, "don't wait for completion");
    // subprocess
    assertProcessStarted(process, PROCESS_ID_3);
    long id = process.current().<CachedProcessStartedEvent>getEvent().getProcessInstanceId();
    assertNextNode(process, P3_START);
    assertTriggered(process, P3_SIGNAL);
    assertLeft(process, "don't wait for completion");
    assertNextNode(process, P2_GATEWAY_END);
    assertTriggered(process, P2_SIGNAL_END);
    Assertions.assertThat(listener.wasProcessStarted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessStarted(PROCESS_ID_3)).isTrue();
    ksession.abortProcessInstance(pi.getId());
    assertProcessCompleted(process, PROCESS_ID_2);
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_3)).isFalse();
    // signal the subprocess to continue
    ksession.signalEvent("continue", null, id);
    assertLeft(process, P3_SIGNAL);
    assertTriggered(process, P3_SCRIPT);
    assertChangedVariable(process, "variable", null, "new value");
    assertLeft(process, P3_SCRIPT);
    assertNextNode(process, P3_END);
    assertProcessCompleted(process, PROCESS_ID_3);
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_3)).isTrue();
}
Also used : IterableProcessEventListener(org.jbpm.test.listener.IterableProcessEventListener) TrackingProcessEventListener(org.jbpm.test.listener.TrackingProcessEventListener) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Example 7 with TrackingProcessEventListener

use of org.jbpm.test.listener.TrackingProcessEventListener in project jbpm by kiegroup.

the class SubprocessesTest method testEmbedded.

@Test(timeout = 30000)
public void testEmbedded() {
    TrackingProcessEventListener process = runProcess(ksession, "embedded");
    Assertions.assertThat(process.wasProcessCompleted(PROCESS_ID_1)).isTrue();
    Assertions.assertThat(process.wasNodeTriggered("embedded")).isTrue();
    Assertions.assertThat(process.wasNodeLeft("embedded")).isTrue();
    Assertions.assertThat(process.wasNodeLeft("print info")).isTrue();
}
Also used : TrackingProcessEventListener(org.jbpm.test.listener.TrackingProcessEventListener) Test(org.junit.Test)

Example 8 with TrackingProcessEventListener

use of org.jbpm.test.listener.TrackingProcessEventListener in project jbpm by kiegroup.

the class SubprocessesTest method testDependentAbort.

@Test(timeout = 30000)
public void testDependentAbort() {
    TrackingProcessEventListener listener = new TrackingProcessEventListener();
    IterableProcessEventListener process = new IterableProcessEventListener();
    ksession.addEventListener(process);
    ksession.addEventListener(listener);
    ProcessInstance pi = ksession.startProcess(PROCESS_ID_2, createBranchDefiningMap("dependent"));
    assertChangedVariable(process, "node", null, "dependent");
    assertProcessStarted(process, PROCESS_ID_2);
    assertNextNode(process, P2_START);
    assertNextNode(process, P2_GATEWAY_START);
    assertTriggered(process, "dependent process");
    assertProcessStarted(process, PROCESS_ID_3);
    assertNextNode(process, P3_START);
    assertTriggered(process, P3_SIGNAL);
    ksession.abortProcessInstance(pi.getId());
    assertProcessCompleted(process, PROCESS_ID_2);
    assertProcessCompleted(process, PROCESS_ID_3);
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_2)).isFalse();
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_3)).isFalse();
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_3)).isTrue();
}
Also used : IterableProcessEventListener(org.jbpm.test.listener.IterableProcessEventListener) TrackingProcessEventListener(org.jbpm.test.listener.TrackingProcessEventListener) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Example 9 with TrackingProcessEventListener

use of org.jbpm.test.listener.TrackingProcessEventListener in project jbpm by kiegroup.

the class SubprocessesTest method testDependentNoWaitForCompletionAbortSubprocess.

@Test(timeout = 30000)
public void testDependentNoWaitForCompletionAbortSubprocess() {
    TrackingProcessEventListener listener = new TrackingProcessEventListener();
    ksession.addEventListener(listener);
    IterableProcessEventListener process = new IterableProcessEventListener();
    ksession.addEventListener(process);
    ProcessInstance pi = ksession.startProcess(PROCESS_ID_2, createBranchDefiningMap("dependent-nowait"));
    assertChangedVariable(process, "node", null, "dependent-nowait");
    assertProcessStarted(process, PROCESS_ID_2);
    assertNextNode(process, P2_START);
    assertNextNode(process, P2_GATEWAY_START);
    assertTriggered(process, "dependent process that doesn't have to be completed");
    // subprocess
    assertProcessStarted(process, PROCESS_ID_3);
    long id = process.current().<CachedProcessStartedEvent>getEvent().getProcessInstanceId();
    assertNextNode(process, P3_START);
    assertTriggered(process, P3_SIGNAL);
    assertLeft(process, "dependent process that doesn't have to be completed");
    assertNextNode(process, P2_GATEWAY_END);
    assertTriggered(process, P2_SIGNAL_END);
    ksession.abortProcessInstance(id);
    assertProcessCompleted(process, PROCESS_ID_3);
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_2)).isFalse();
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_3)).isTrue();
    // signal the parent process to finish
    ksession.signalEvent("finish", null, pi.getId());
    assertLeft(process, P2_SIGNAL_END);
    assertNextNode(process, P2_END);
    assertProcessCompleted(process, PROCESS_ID_2);
    Assertions.assertThat(listener.wasProcessCompleted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_3)).isTrue();
}
Also used : IterableProcessEventListener(org.jbpm.test.listener.IterableProcessEventListener) TrackingProcessEventListener(org.jbpm.test.listener.TrackingProcessEventListener) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Example 10 with TrackingProcessEventListener

use of org.jbpm.test.listener.TrackingProcessEventListener in project jbpm by kiegroup.

the class SubprocessesTest method testDependentAbort2.

@Test(timeout = 30000)
public void testDependentAbort2() {
    TrackingProcessEventListener listener = new TrackingProcessEventListener();
    IterableProcessEventListener process = new IterableProcessEventListener();
    ksession.addEventListener(process);
    ksession.addEventListener(listener);
    ProcessInstance pi = ksession.startProcess(PROCESS_ID_2, createBranchDefiningMap("dependent"));
    assertChangedVariable(process, "node", null, "dependent");
    assertProcessStarted(process, PROCESS_ID_2);
    assertNextNode(process, P2_START);
    assertNextNode(process, P2_GATEWAY_START);
    assertTriggered(process, "dependent process");
    // subprocess started
    assertProcessStarted(process, PROCESS_ID_3);
    assertNextNode(process, P3_START);
    assertTriggered(process, P3_SIGNAL);
    long subprocessId = process.current().getProcessInstanceId();
    Assertions.assertThat(pi.getId()).isNotEqualTo(subprocessId);
    // abort subprocess
    ksession.abortProcessInstance(subprocessId);
    // carry on with execution of superprocess
    assertProcessCompleted(process, PROCESS_ID_3);
    assertProcessCompleted(process, PROCESS_ID_2);
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_2)).isTrue();
    Assertions.assertThat(listener.wasProcessAborted(PROCESS_ID_3)).isTrue();
}
Also used : IterableProcessEventListener(org.jbpm.test.listener.IterableProcessEventListener) TrackingProcessEventListener(org.jbpm.test.listener.TrackingProcessEventListener) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Aggregations

TrackingProcessEventListener (org.jbpm.test.listener.TrackingProcessEventListener)51 Test (org.junit.Test)49 KieSession (org.kie.api.runtime.KieSession)25 IterableProcessEventListener (org.jbpm.test.listener.IterableProcessEventListener)17 Command (org.kie.api.command.Command)16 ArrayList (java.util.ArrayList)13 ProcessInstance (org.kie.api.runtime.process.ProcessInstance)13 BZ (qa.tools.ikeeper.annotation.BZ)9 UserTransaction (javax.transaction.UserTransaction)7 RegisterWorkItemHandlerCommand (org.drools.core.command.runtime.process.RegisterWorkItemHandlerCommand)6 CompleteWorkItemCommand (org.drools.core.command.runtime.process.CompleteWorkItemCommand)5 HashMap (java.util.HashMap)3 TrackingAgendaEventListener (org.jbpm.test.listener.TrackingAgendaEventListener)2 WorkItem (org.kie.api.runtime.process.WorkItem)2 AsyncWorkItemHandler (org.jbpm.executor.impl.wih.AsyncWorkItemHandler)1 JbpmJUnitBaseTestCase (org.jbpm.test.JbpmJUnitBaseTestCase)1 TrackingRuleRuntimeEventListener (org.jbpm.test.listener.TrackingRuleRuntimeEventListener)1 ListWorkItemHandler (org.jbpm.test.wih.ListWorkItemHandler)1 DynamicNodeInstance (org.jbpm.workflow.instance.node.DynamicNodeInstance)1 Before (org.junit.Before)1