use of io.automatiko.engine.services.event.ProcessInstanceDataEvent in project automatiko-engine by automatiko-io.
the class PublishEventTest method assertProcessInstanceEventWithParentId.
protected ProcessInstanceEventBody assertProcessInstanceEventWithParentId(DataEvent<?> event, String processId, String processName, Integer state) {
assertThat(event).isInstanceOf(ProcessInstanceDataEvent.class);
ProcessInstanceEventBody body = ((ProcessInstanceDataEvent) event).getData();
assertThat(body).isNotNull();
assertThat(body.getId()).isNotNull();
assertThat(body.getStartDate()).isNotNull();
if (state == ProcessInstance.STATE_ACTIVE) {
assertThat(body.getEndDate()).isNull();
} else {
assertThat(body.getEndDate()).isNotNull();
}
assertThat(body.getParentInstanceId()).isNotNull();
assertThat(body.getRootInstanceId()).isNotNull();
assertThat(body.getProcessId()).isEqualTo(processId);
assertThat(body.getProcessName()).isEqualTo(processName);
assertThat(body.getState()).isEqualTo(state);
return body;
}
use of io.automatiko.engine.services.event.ProcessInstanceDataEvent in project automatiko-engine by automatiko-io.
the class PublishEventTest method testProcessWithMilestoneEvents.
@Test
public void testProcessWithMilestoneEvents() throws Exception {
Application app = generateCodeProcessesOnly("cases/milestones/SimpleMilestone.bpmn");
assertThat(app).isNotNull();
TestEventPublisher publisher = new TestEventPublisher();
app.unitOfWorkManager().eventManager().setService("http://myhost");
app.unitOfWorkManager().eventManager().addPublisher(publisher);
UnitOfWork uow = app.unitOfWorkManager().newUnitOfWork();
uow.start();
Process<? extends Model> p = app.processes().processById("TestCase.SimpleMilestone_1_0");
ProcessInstance<?> processInstance = p.createInstance(p.createModel());
processInstance.start();
assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
uow.end();
List<DataEvent<?>> events = publisher.extract();
assertThat(events).isNotNull().hasSize(1);
DataEvent<?> event = events.get(0);
assertThat(event).isInstanceOf(ProcessInstanceDataEvent.class);
ProcessInstanceDataEvent processDataEvent = (ProcessInstanceDataEvent) event;
assertThat(processDataEvent.getSource()).isEqualTo("http://myhost/SimpleMilestone");
Set<MilestoneEventBody> milestones = ((ProcessInstanceDataEvent) event).getData().getMilestones();
assertThat(milestones).hasSize(2).extracting(e -> e.getName(), e -> e.getStatus()).containsExactlyInAnyOrder(tuple("AutoStartMilestone", Status.COMPLETED.name()), tuple("SimpleMilestone", Status.COMPLETED.name()));
}
use of io.automatiko.engine.services.event.ProcessInstanceDataEvent in project automatiko-engine by automatiko-io.
the class VerificationTest method testProcessParentsSuccessful.
@Test
public void testProcessParentsSuccessful() {
String addPayload = "{\"name\" : \"john\"}";
given().contentType(ContentType.JSON).accept(ContentType.JSON).body(addPayload).when().post("/parents").then().statusCode(200).body("id", notNullValue(), "name", equalTo("john"));
List<DataEvent<?>> received = publisher.events();
assertEquals(4, received.size());
ProcessInstanceDataEvent piEvent = (ProcessInstanceDataEvent) received.stream().filter(pi -> ((ProcessInstanceDataEvent) pi).getData().getState().equals(ProcessInstance.STATE_COMPLETED) && ((ProcessInstanceDataEvent) pi).getData().getProcessId().equals("parents")).findFirst().get();
assertEquals("Here is async name", piEvent.getData().getVariables().get("name"));
given().accept(ContentType.JSON).when().get("/parents").then().statusCode(200).body("$.size()", is(0));
}
use of io.automatiko.engine.services.event.ProcessInstanceDataEvent in project automatiko-engine by automatiko-io.
the class VerificationTest method testProcessAsyncCallSuccessful.
@Test
public void testProcessAsyncCallSuccessful() {
String addPayload = "{\"name\" : \"john\"}";
given().contentType(ContentType.JSON).accept(ContentType.JSON).body(addPayload).when().post("/async").then().statusCode(200).body("id", notNullValue(), "name", equalTo("john"));
List<DataEvent<?>> received = publisher.events();
assertEquals(2, received.size());
ProcessInstanceDataEvent piEvent = (ProcessInstanceDataEvent) received.stream().filter(pi -> ((ProcessInstanceDataEvent) pi).getData().getState().equals(ProcessInstance.STATE_COMPLETED)).findFirst().get();
assertEquals("Here is async name", piEvent.getData().getVariables().get("name"));
given().accept(ContentType.JSON).when().get("/async").then().statusCode(200).body("$.size()", is(0));
}
use of io.automatiko.engine.services.event.ProcessInstanceDataEvent in project automatiko-engine by automatiko-io.
the class VerificationTest method testProcessParentsFailure.
@Test
public void testProcessParentsFailure() {
String addPayload = "{\"name\" : null}";
given().contentType(ContentType.JSON).accept(ContentType.JSON).body(addPayload).when().post("/parents").then().statusCode(200).body("id", notNullValue(), "name", nullValue());
List<DataEvent<?>> received = publisher.events();
assertEquals(4, received.size());
ProcessInstanceDataEvent piEvent = (ProcessInstanceDataEvent) received.stream().filter(pi -> ((ProcessInstanceDataEvent) pi).getData().getState().equals(ProcessInstance.STATE_COMPLETED) && ((ProcessInstanceDataEvent) pi).getData().getProcessId().equals("parents")).findFirst().get();
assertEquals(null, piEvent.getData().getVariables().get("name"));
given().accept(ContentType.JSON).when().get("/parents").then().statusCode(200).body("$.size()", is(0));
}
Aggregations