Search in sources :

Example 16 with Model

use of org.kie.kogito.Model in project kogito-runtimes by kiegroup.

the class TimerEventIT method testBoundaryDateTimerEventOnTask.

@Test
void testBoundaryDateTimerEventOnTask() throws Exception {
    Application app = generateCodeProcessesOnly("timer/TimerBoundaryEventDateISOOnTask.bpmn2");
    assertThat(app).isNotNull();
    NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("TimerEvent", 1);
    app.config().get(ProcessConfig.class).processEventListeners().listeners().add(listener);
    Process<? extends Model> p = app.get(Processes.class).processById("TimerBoundaryEvent");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    OffsetDateTime plusTwoSeconds = OffsetDateTime.now().plusSeconds(2);
    parameters.put("date", plusTwoSeconds.toString());
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    boolean completed = listener.waitTillCompleted(5000);
    assertThat(completed).isTrue();
    assertThat(processInstance.status()).isEqualTo(KogitoProcessInstance.STATE_COMPLETED);
}
Also used : ProcessConfig(org.kie.kogito.process.ProcessConfig) HashMap(java.util.HashMap) Processes(org.kie.kogito.process.Processes) NodeLeftCountDownProcessEventListener(org.jbpm.test.util.NodeLeftCountDownProcessEventListener) OffsetDateTime(java.time.OffsetDateTime) Model(org.kie.kogito.Model) Application(org.kie.kogito.Application) Test(org.junit.jupiter.api.Test)

Example 17 with Model

use of org.kie.kogito.Model in project kogito-runtimes by kiegroup.

the class TimerEventIT method testBoundaryDurationTimerEventOnSubProcess.

@Test
void testBoundaryDurationTimerEventOnSubProcess() throws Exception {
    Application app = generateCodeProcessesOnly("timer/TimerBoundaryEventDurationISO.bpmn2");
    assertThat(app).isNotNull();
    NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("TimerEvent", 1);
    app.config().get(ProcessConfig.class).processEventListeners().listeners().add(listener);
    Process<? extends Model> p = app.get(Processes.class).processById("TimerBoundaryEvent");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    boolean completed = listener.waitTillCompleted(5000);
    assertThat(completed).isTrue();
    assertThat(processInstance.status()).isEqualTo(KogitoProcessInstance.STATE_COMPLETED);
}
Also used : NodeLeftCountDownProcessEventListener(org.jbpm.test.util.NodeLeftCountDownProcessEventListener) ProcessConfig(org.kie.kogito.process.ProcessConfig) HashMap(java.util.HashMap) Model(org.kie.kogito.Model) Processes(org.kie.kogito.process.Processes) Application(org.kie.kogito.Application) Test(org.junit.jupiter.api.Test)

Example 18 with Model

use of org.kie.kogito.Model in project kogito-runtimes by kiegroup.

the class TimerEventIT method testIntermediateCycleTimerEvent.

@Test
void testIntermediateCycleTimerEvent() throws Exception {
    Application app = generateCodeProcessesOnly("timer/IntermediateCatchEventTimerCycleISO.bpmn2");
    assertThat(app).isNotNull();
    NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("timer", 3);
    app.config().get(ProcessConfig.class).processEventListeners().listeners().add(listener);
    Process<? extends Model> p = app.get(Processes.class).processById("IntermediateCatchEvent");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    boolean completed = listener.waitTillCompleted(5000);
    assertThat(completed).isTrue();
    assertThat(processInstance.status()).isEqualTo(KogitoProcessInstance.STATE_ACTIVE);
    processInstance.abort();
    assertThat(processInstance.status()).isEqualTo(KogitoProcessInstance.STATE_ABORTED);
}
Also used : NodeLeftCountDownProcessEventListener(org.jbpm.test.util.NodeLeftCountDownProcessEventListener) ProcessConfig(org.kie.kogito.process.ProcessConfig) HashMap(java.util.HashMap) Model(org.kie.kogito.Model) Processes(org.kie.kogito.process.Processes) Application(org.kie.kogito.Application) Test(org.junit.jupiter.api.Test)

Example 19 with Model

use of org.kie.kogito.Model in project kogito-runtimes by kiegroup.

the class TimerEventIT method testIntermediateDurationTimerEvent.

@Test
void testIntermediateDurationTimerEvent() throws Exception {
    Application app = generateCodeProcessesOnly("timer/IntermediateCatchEventTimerDurationISO.bpmn2");
    assertThat(app).isNotNull();
    NodeLeftCountDownProcessEventListener listener = new NodeLeftCountDownProcessEventListener("timer", 1);
    app.config().get(ProcessConfig.class).processEventListeners().listeners().add(listener);
    Process<? extends Model> p = app.get(Processes.class).processById("IntermediateCatchEvent");
    Model m = p.createModel();
    Map<String, Object> parameters = new HashMap<>();
    m.fromMap(parameters);
    ProcessInstance<?> processInstance = p.createInstance(m);
    processInstance.start();
    boolean completed = listener.waitTillCompleted(5000);
    assertThat(completed).isTrue();
    assertThat(processInstance.status()).isEqualTo(KogitoProcessInstance.STATE_COMPLETED);
}
Also used : NodeLeftCountDownProcessEventListener(org.jbpm.test.util.NodeLeftCountDownProcessEventListener) ProcessConfig(org.kie.kogito.process.ProcessConfig) HashMap(java.util.HashMap) Model(org.kie.kogito.Model) Processes(org.kie.kogito.process.Processes) Application(org.kie.kogito.Application) Test(org.junit.jupiter.api.Test)

Example 20 with Model

use of org.kie.kogito.Model in project kogito-runtimes by kiegroup.

the class SubProcessIT method testSubProcess.

@Test
public void testSubProcess() throws Exception {
    Application app = generateCodeProcessesOnly("subprocess/SubProcess.bpmn", "subprocess/ParentProcess.bpmn");
    assertThat(app).isNotNull();
    Process<? extends Model> parent = app.get(Processes.class).processById("parent");
    Process<? extends Model> subProcess = app.get(Processes.class).processById("subprocess");
    Model m = parent.createModel();
    m.fromMap(Collections.singletonMap("name", "test"));
    ProcessInstance<? extends Model> processInstance = parent.createInstance(m);
    processInstance.start();
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
    Collection<? extends ProcessInstance<? extends Model>> instances = subProcess.instances().values();
    assertThat(instances).hasSize(1);
    ProcessInstance<? extends Model> subProcessInstance = instances.iterator().next();
    assertThat(subProcessInstance.variables().toMap()).hasSize(3).contains(entry("constant", "aString"), entry("name", "test"), entry("review", null));
    subProcessInstance.send(Sig.of("end", "another review"));
    assertThat(subProcessInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
    assertThat(processInstance.variables().toMap()).hasSize(2).contains(entry("name", "test"), entry("review", "another review"));
    processInstance.send(Sig.of("end", null));
    assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
}
Also used : Model(org.kie.kogito.Model) Processes(org.kie.kogito.process.Processes) Application(org.kie.kogito.Application) Test(org.junit.jupiter.api.Test)

Aggregations

Model (org.kie.kogito.Model)132 Application (org.kie.kogito.Application)114 Processes (org.kie.kogito.process.Processes)112 HashMap (java.util.HashMap)106 Test (org.junit.jupiter.api.Test)104 List (java.util.List)32 ArrayList (java.util.ArrayList)28 WorkItem (org.kie.kogito.process.WorkItem)28 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)23 Person (org.kie.kogito.codegen.data.Person)21 ProcessConfig (org.kie.kogito.process.ProcessConfig)15 UnitOfWork (org.kie.kogito.uow.UnitOfWork)14 HumanTaskTransition (org.jbpm.process.instance.impl.humantask.HumanTaskTransition)11 ValueSource (org.junit.jupiter.params.provider.ValueSource)11 DataEvent (org.kie.kogito.event.DataEvent)11 ProcessInstanceDataEvent (org.kie.kogito.services.event.ProcessInstanceDataEvent)11 UserTaskInstanceDataEvent (org.kie.kogito.services.event.UserTaskInstanceDataEvent)11 VariableInstanceDataEvent (org.kie.kogito.services.event.VariableInstanceDataEvent)11 Arrays.asList (java.util.Arrays.asList)10 ProcessInstanceEventBody (org.kie.kogito.services.event.impl.ProcessInstanceEventBody)10