use of io.zeebe.test.broker.protocol.clientapi.SubscribedEvent in project zeebe by zeebe-io.
the class IncidentTest method shouldCreateIncidentForInputMappingFailure.
@Test
public void shouldCreateIncidentForInputMappingFailure() {
// given
testClient.deploy(WORKFLOW_INPUT_MAPPING);
// when
final long workflowInstanceKey = testClient.createWorkflowInstance("process");
// then
final SubscribedEvent failureEvent = testClient.receiveSingleEvent(workflowInstanceEvents("ACTIVITY_READY"));
final SubscribedEvent incidentEvent = testClient.receiveSingleEvent(incidentEvents("CREATED"));
assertThat(incidentEvent.key()).isGreaterThan(0);
assertThat(incidentEvent.event()).containsEntry("errorType", ErrorType.IO_MAPPING_ERROR.name()).containsEntry("errorMessage", "No data found for query $.foo.").containsEntry("failureEventPosition", failureEvent.position()).containsEntry("bpmnProcessId", "process").containsEntry("workflowInstanceKey", workflowInstanceKey).containsEntry("activityId", "failingTask").containsEntry("activityInstanceKey", failureEvent.key()).containsEntry("taskKey", -1);
}
use of io.zeebe.test.broker.protocol.clientapi.SubscribedEvent in project zeebe by zeebe-io.
the class CompleteTaskTest method shouldCompleteTask.
@Test
public void shouldCompleteTask() {
// given
createTask(TASK_TYPE);
apiRule.openTaskSubscription(TASK_TYPE).await();
final SubscribedEvent subscribedEvent = receiveSingleSubscribedEvent();
// when
final ExecuteCommandResponse response = completeTask(subscribedEvent.key(), subscribedEvent.event());
// then
final Map<String, Object> expectedEvent = new HashMap<>(subscribedEvent.event());
expectedEvent.put("state", "COMPLETED");
assertThat(response.getEvent()).containsAllEntriesOf(expectedEvent);
}
use of io.zeebe.test.broker.protocol.clientapi.SubscribedEvent in project zeebe by zeebe-io.
the class CompleteTaskTest method shouldRejectCompletionIfPayloadIsInvalid.
@Test
public void shouldRejectCompletionIfPayloadIsInvalid() {
// given
createTask(TASK_TYPE);
apiRule.openTaskSubscription(TASK_TYPE).await();
final SubscribedEvent subscribedEvent = receiveSingleSubscribedEvent();
final Map<String, Object> event = subscribedEvent.event();
// positive fixnum, i.e. no object
event.put("payload", new byte[] { 1 });
// when
final ExecuteCommandResponse response = completeTask(subscribedEvent.key(), event);
// then
assertThat(response.getEvent()).containsEntry("state", "COMPLETE_REJECTED");
}
use of io.zeebe.test.broker.protocol.clientapi.SubscribedEvent in project zeebe by zeebe-io.
the class TaskLockExpirationTest method shouldNotExpireLockIfTaskCompleted.
@Test
public void shouldNotExpireLockIfTaskCompleted() throws InterruptedException {
// given
brokerRule.getClock().pinCurrentTime();
final Duration lockTime = Duration.ofSeconds(60);
final String taskType = "taskType";
createTask(taskType);
apiRule.openTaskSubscription(apiRule.getDefaultPartitionId(), taskType, lockTime.toMillis()).await();
// => task is locked
final SubscribedEvent lockedTask = apiRule.subscribedEvents().findFirst().get();
completeTask(lockedTask);
// when
brokerRule.getClock().addTime(lockTime.plus(Duration.ofSeconds(1)));
// then
assertNoMoreTaskReceived();
}
use of io.zeebe.test.broker.protocol.clientapi.SubscribedEvent in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldCreateDeploymentWithYamlWorfklow.
@Test
public void shouldCreateDeploymentWithYamlWorfklow() throws Exception {
// given
final File yamlFile = new File(getClass().getResource("/workflows/simple-workflow.yaml").toURI());
final String yamlWorkflow = Files.contentOf(yamlFile, UTF_8);
// when
final ExecuteCommandResponse resp = apiRule.topic().deployWithResponse(ClientApiRule.DEFAULT_TOPIC_NAME, yamlWorkflow.getBytes(UTF_8), ResourceType.YAML_WORKFLOW.name(), "simple-workflow.yaml");
// then
assertThat(resp.getEvent()).containsEntry(PROP_STATE, "CREATED");
final SubscribedEvent workflowEvent = apiRule.topic().receiveSingleEvent(workflowEvents("CREATED"));
assertThat(workflowEvent.event()).containsEntry(PROP_WORKFLOW_BPMN_PROCESS_ID, "yaml-workflow").containsEntry("deploymentKey", resp.key()).containsEntry("bpmnXml", bpmnXml(Bpmn.readFromYamlFile(yamlFile)));
}
Aggregations