Search in sources :

Example 6 with ExecuteCommandResponse

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");
}
Also used : ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) Test(org.junit.Test)

Example 7 with ExecuteCommandResponse

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");
}
Also used : TestTopicClient.workflowEvents(io.zeebe.test.broker.protocol.clientapi.TestTopicClient.workflowEvents) ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) Arrays(java.util.Arrays) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) HashMap(java.util.HashMap) EmbeddedBrokerRule(io.zeebe.broker.test.EmbeddedBrokerRule) Bpmn(io.zeebe.model.bpmn.Bpmn) Protocol(io.zeebe.protocol.Protocol) ArrayList(java.util.ArrayList) ResourceType(io.zeebe.broker.workflow.data.ResourceType) Map(java.util.Map) PROP_WORKFLOW_VERSION(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_WORKFLOW_VERSION) WorkflowDefinition(io.zeebe.model.bpmn.instance.WorkflowDefinition) UTF_8(java.nio.charset.StandardCharsets.UTF_8) SubscribedEvent(io.zeebe.test.broker.protocol.clientapi.SubscribedEvent) IOException(java.io.IOException) Test(org.junit.Test) File(java.io.File) RuleChain(org.junit.rules.RuleChain) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Rule(org.junit.Rule) StreamUtil(io.zeebe.util.StreamUtil) PROP_STATE(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_STATE) EventType(io.zeebe.protocol.clientapi.EventType) PROP_WORKFLOW_BPMN_PROCESS_ID(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_WORKFLOW_BPMN_PROCESS_ID) Files(org.assertj.core.util.Files) Collections(java.util.Collections) InputStream(java.io.InputStream) ClientApiRule(io.zeebe.test.broker.protocol.clientapi.ClientApiRule) ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) InputStream(java.io.InputStream) WorkflowDefinition(io.zeebe.model.bpmn.instance.WorkflowDefinition) HashMap(java.util.HashMap) Map(java.util.Map) SubscribedEvent(io.zeebe.test.broker.protocol.clientapi.SubscribedEvent) Test(org.junit.Test)

Example 8 with ExecuteCommandResponse

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);
}
Also used : ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) ArrayList(java.util.ArrayList) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.Test)

Example 9 with ExecuteCommandResponse

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");
}
Also used : TestTopicClient.workflowEvents(io.zeebe.test.broker.protocol.clientapi.TestTopicClient.workflowEvents) ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) Arrays(java.util.Arrays) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) HashMap(java.util.HashMap) EmbeddedBrokerRule(io.zeebe.broker.test.EmbeddedBrokerRule) Bpmn(io.zeebe.model.bpmn.Bpmn) Protocol(io.zeebe.protocol.Protocol) ArrayList(java.util.ArrayList) ResourceType(io.zeebe.broker.workflow.data.ResourceType) Map(java.util.Map) PROP_WORKFLOW_VERSION(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_WORKFLOW_VERSION) WorkflowDefinition(io.zeebe.model.bpmn.instance.WorkflowDefinition) UTF_8(java.nio.charset.StandardCharsets.UTF_8) SubscribedEvent(io.zeebe.test.broker.protocol.clientapi.SubscribedEvent) IOException(java.io.IOException) Test(org.junit.Test) File(java.io.File) RuleChain(org.junit.rules.RuleChain) Collectors.toList(java.util.stream.Collectors.toList) List(java.util.List) Rule(org.junit.Rule) StreamUtil(io.zeebe.util.StreamUtil) PROP_STATE(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_STATE) EventType(io.zeebe.protocol.clientapi.EventType) PROP_WORKFLOW_BPMN_PROCESS_ID(io.zeebe.broker.workflow.data.WorkflowInstanceEvent.PROP_WORKFLOW_BPMN_PROCESS_ID) Files(org.assertj.core.util.Files) Collections(java.util.Collections) InputStream(java.io.InputStream) ClientApiRule(io.zeebe.test.broker.protocol.clientapi.ClientApiRule) ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) WorkflowDefinition(io.zeebe.model.bpmn.instance.WorkflowDefinition) HashMap(java.util.HashMap) Map(java.util.Map) SubscribedEvent(io.zeebe.test.broker.protocol.clientapi.SubscribedEvent) Test(org.junit.Test)

Example 10 with ExecuteCommandResponse

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.");
}
Also used : ExecuteCommandResponse(io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse) WorkflowDefinition(io.zeebe.model.bpmn.instance.WorkflowDefinition) Test(org.junit.Test)

Aggregations

ExecuteCommandResponse (io.zeebe.test.broker.protocol.clientapi.ExecuteCommandResponse)47 Test (org.junit.Test)41 SubscribedEvent (io.zeebe.test.broker.protocol.clientapi.SubscribedEvent)22 HashMap (java.util.HashMap)13 Map (java.util.Map)9 List (java.util.List)8 EmbeddedBrokerRule (io.zeebe.broker.test.EmbeddedBrokerRule)7 ClientApiRule (io.zeebe.test.broker.protocol.clientapi.ClientApiRule)7 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)7 Rule (org.junit.Rule)7 RuleChain (org.junit.rules.RuleChain)7 WorkflowDefinition (io.zeebe.model.bpmn.instance.WorkflowDefinition)6 IOException (java.io.IOException)5 EventType (io.zeebe.protocol.clientapi.EventType)4 SubscriptionType (io.zeebe.protocol.clientapi.SubscriptionType)4 ControlMessageResponse (io.zeebe.test.broker.protocol.clientapi.ControlMessageResponse)4 TestTopicClient (io.zeebe.test.broker.protocol.clientapi.TestTopicClient)4 TestUtil.waitUntil (io.zeebe.test.util.TestUtil.waitUntil)4 File (java.io.File)4 Collectors (java.util.stream.Collectors)4