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);
}
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);
}
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);
}
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);
}
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);
}
Aggregations