use of io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldRejectDeploymentIfNotParsable.
@Test
public void shouldRejectDeploymentIfNotParsable() {
// when
final ExecuteCommandResponse resp = apiRule.topic().deployWithResponse(ClientApiRule.DEFAULT_TOPIC_NAME, "not a workflow".getBytes(UTF_8), ResourceType.BPMN_XML.name(), "invalid.bpmn");
// then
assertThat(resp.key()).isGreaterThanOrEqualTo(0L);
assertThat(resp.getEvent()).containsEntry(PROP_STATE, "REJECTED");
assertThat((String) resp.getEvent().get("errorMessage")).contains("Failed to deploy resource 'invalid.bpmn':").contains("Failed to read BPMN model");
}
use of io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldCreateDeploymentWithMultipleResourcesAndWorkflows.
@Test
public void shouldCreateDeploymentWithMultipleResourcesAndWorkflows() throws IOException {
// given
final WorkflowDefinition singleWorkflow = Bpmn.createExecutableWorkflow("singleProcess").startEvent().done();
final InputStream multipleWorkflowsResource = getClass().getResourceAsStream("/workflows/collaboration.bpmn");
final List<Map<String, Object>> resources = Arrays.asList(deploymentResource(bpmnXml(singleWorkflow), "process1.bpmn"), deploymentResource(StreamUtil.read(multipleWorkflowsResource), "collaboration.bpmn"));
// when
final ExecuteCommandResponse resp = apiRule.createCmdRequest().partitionId(Protocol.SYSTEM_PARTITION).eventType(EventType.DEPLOYMENT_EVENT).command().put(PROP_STATE, "CREATE").put("topicName", ClientApiRule.DEFAULT_TOPIC_NAME).put("resources", resources).done().sendAndAwait();
// then
assertThat(resp.getEvent()).containsEntry(PROP_STATE, "CREATED");
final List<SubscribedEvent> workflowEvents = apiRule.topic().receiveEvents(workflowEvents("CREATED")).limit(3).collect(toList());
assertThat(workflowEvents).extracting(s -> s.event().get(PROP_WORKFLOW_BPMN_PROCESS_ID)).contains("singleProcess", "process1", "process2");
}
use of io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldReturnDeployedWorkflowDefinitions.
@SuppressWarnings("unchecked")
@Test
public void shouldReturnDeployedWorkflowDefinitions() {
// when
ExecuteCommandResponse resp = apiRule.topic().deployWithResponse(ClientApiRule.DEFAULT_TOPIC_NAME, WORKFLOW);
// then
List<Map<String, Object>> deployedWorkflows = (List<Map<String, Object>>) resp.getEvent().get("deployedWorkflows");
assertThat(deployedWorkflows).hasSize(1);
assertThat(deployedWorkflows.get(0)).containsEntry(PROP_WORKFLOW_BPMN_PROCESS_ID, "process");
assertThat(deployedWorkflows.get(0)).containsEntry(PROP_WORKFLOW_VERSION, 1);
// when deploy the workflow definition a second time
resp = apiRule.topic().deployWithResponse(ClientApiRule.DEFAULT_TOPIC_NAME, WORKFLOW);
// then the workflow definition version is increased
deployedWorkflows = (List<Map<String, Object>>) resp.getEvent().get("deployedWorkflows");
assertThat(deployedWorkflows).hasSize(1);
assertThat(deployedWorkflows.get(0)).containsEntry(PROP_WORKFLOW_BPMN_PROCESS_ID, "process");
assertThat(deployedWorkflows.get(0)).containsEntry(PROP_WORKFLOW_VERSION, 2);
}
use of io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldCreateDeploymentWithMultipleResources.
@Test
public void shouldCreateDeploymentWithMultipleResources() {
// given
final WorkflowDefinition definition1 = Bpmn.createExecutableWorkflow("process1").startEvent().done();
final WorkflowDefinition definition2 = Bpmn.createExecutableWorkflow("process2").startEvent().done();
final List<Map<String, Object>> resources = Arrays.asList(deploymentResource(bpmnXml(definition1), "process1.bpmn"), deploymentResource(bpmnXml(definition2), "process2.bpmn"));
// when
final ExecuteCommandResponse resp = apiRule.createCmdRequest().partitionId(Protocol.SYSTEM_PARTITION).eventType(EventType.DEPLOYMENT_EVENT).command().put(PROP_STATE, "CREATE").put("topicName", ClientApiRule.DEFAULT_TOPIC_NAME).put("resources", resources).done().sendAndAwait();
// then
assertThat(resp.getEvent()).containsEntry(PROP_STATE, "CREATED");
final List<SubscribedEvent> workflowEvents = apiRule.topic().receiveEvents(workflowEvents("CREATED")).limit(2).collect(toList());
assertThat(workflowEvents).extracting(s -> s.event().get(PROP_WORKFLOW_BPMN_PROCESS_ID)).contains("process1", "process2");
}
use of io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldRejectDeploymentIfNotValid.
@Test
public void shouldRejectDeploymentIfNotValid() {
// given
final WorkflowDefinition definition = Bpmn.createExecutableWorkflow("process").done();
// when
final ExecuteCommandResponse resp = apiRule.topic().deployWithResponse(ClientApiRule.DEFAULT_TOPIC_NAME, definition);
// then
assertThat(resp.key()).isGreaterThanOrEqualTo(0L);
assertThat(resp.getEvent()).containsEntry(PROP_STATE, "REJECTED");
assertThat((String) resp.getEvent().get("errorMessage")).contains("The process must contain at least one none start event.");
}
Aggregations