Search in sources :

Example 6 with Bpmn

use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by camunda.

the class CreateDeploymentTest method shouldRejectDeploymentWithDuplicateResources.

@Test
public void shouldRejectDeploymentWithDuplicateResources() {
    // given
    final BpmnModelInstance definition1 = Bpmn.createExecutableProcess("process1").startEvent().done();
    final BpmnModelInstance definition2 = Bpmn.createExecutableProcess("process2").startEvent().done();
    final BpmnModelInstance definition3 = Bpmn.createExecutableProcess("process2").startEvent().serviceTask("task", (t) -> t.zeebeJobType("j").zeebeTaskHeader("k", "v")).done();
    // when
    final Record<DeploymentRecordValue> deploymentRejection = ENGINE.deployment().withXmlResource("p1.bpmn", definition1).withXmlResource("p2.bpmn", definition2).withXmlResource("p3.bpmn", definition3).expectRejection().deploy();
    // then
    Assertions.assertThat(deploymentRejection).hasRejectionType(RejectionType.INVALID_ARGUMENT).hasRejectionReason("Expected to deploy new resources, but encountered the following errors:\n" + "Duplicated process id in resources 'p2.bpmn' and 'p3.bpmn'");
}
Also used : RecordType(io.camunda.zeebe.protocol.record.RecordType) DeploymentIntent(io.camunda.zeebe.protocol.record.intent.DeploymentIntent) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) DeploymentResource(io.camunda.zeebe.protocol.record.value.deployment.DeploymentResource) Bpmn(io.camunda.zeebe.model.bpmn.Bpmn) DeploymentRecordValue(io.camunda.zeebe.protocol.record.value.DeploymentRecordValue) Record(io.camunda.zeebe.protocol.record.Record) Strings(io.camunda.zeebe.test.util.Strings) EngineRule(io.camunda.zeebe.engine.util.EngineRule) BpmnModelInstance(io.camunda.zeebe.model.bpmn.BpmnModelInstance) ProcessBuilder(io.camunda.zeebe.model.bpmn.builder.ProcessBuilder) DEPLOYMENT_PARTITION(io.camunda.zeebe.protocol.Protocol.DEPLOYMENT_PARTITION) ClassRule(org.junit.ClassRule) Path(java.nio.file.Path) Before(org.junit.Before) ProcessMetadataValue(io.camunda.zeebe.protocol.record.value.deployment.ProcessMetadataValue) ExecuteCommandResponseDecoder(io.camunda.zeebe.protocol.record.ExecuteCommandResponseDecoder) Assertions.tuple(org.assertj.core.api.Assertions.tuple) Files(java.nio.file.Files) UTF_8(java.nio.charset.StandardCharsets.UTF_8) Test(org.junit.Test) RecordingExporterTestWatcher(io.camunda.zeebe.test.util.record.RecordingExporterTestWatcher) Collectors(java.util.stream.Collectors) Assertions(io.camunda.zeebe.protocol.record.Assertions) ProcessIntent(io.camunda.zeebe.protocol.record.intent.ProcessIntent) RecordingExporter(io.camunda.zeebe.test.util.record.RecordingExporter) List(java.util.List) Rule(org.junit.Rule) RejectionType(io.camunda.zeebe.protocol.record.RejectionType) Paths(java.nio.file.Paths) Message(io.camunda.zeebe.model.bpmn.instance.Message) InputStream(java.io.InputStream) DeploymentRecordValue(io.camunda.zeebe.protocol.record.value.DeploymentRecordValue) BpmnModelInstance(io.camunda.zeebe.model.bpmn.BpmnModelInstance) Test(org.junit.Test)

Example 7 with Bpmn

use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by camunda-cloud.

the class ActivateJobsTest method shouldActivateJobsFromProcess.

@Test
public void shouldActivateJobsFromProcess() {
    // given
    final int jobAmount = 10;
    final String jobType = taskType;
    final String jobType2 = Strings.newRandomValidBpmnId();
    final String jobType3 = Strings.newRandomValidBpmnId();
    AbstractFlowNodeBuilder<?, ?> builder = Bpmn.createExecutableProcess(PROCESS_ID).startEvent("start");
    for (final String type : Arrays.asList(jobType, jobType2, jobType3)) {
        builder = builder.serviceTask(type, b -> b.zeebeJobType(type));
    }
    ENGINE.deployment().withXmlResource(PROCESS_ID + ".bpmn", builder.done()).deploy();
    final List<Long> processInstanceKeys = createProcessInstances(jobAmount, "{}");
    // when activating and completing all jobs
    waitForJobs(jobType, jobAmount, processInstanceKeys);
    activateJobs(jobType, jobAmount).forEach(this::completeJob);
    waitForJobs(jobType2, jobAmount, processInstanceKeys);
    activateJobs(jobType2, jobAmount).forEach(this::completeJob);
    waitForJobs(jobType3, jobAmount, processInstanceKeys);
    activateJobs(jobType3, jobAmount).forEach(this::completeJob);
    // then all process instances are completed
    assertThat(processInstanceRecords(ProcessInstanceIntent.ELEMENT_COMPLETED).withBpmnProcessId(PROCESS_ID).filter(r -> processInstanceKeys.contains(r.getKey())).limit(jobAmount).count() == processInstanceKeys.size());
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) JobBatchRecordValue(io.camunda.zeebe.protocol.record.value.JobBatchRecordValue) ProcessInstanceIntent(io.camunda.zeebe.protocol.record.intent.ProcessInstanceIntent) InstanceOfAssertFactories(org.assertj.core.api.InstanceOfAssertFactories) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) JobRecordValue(io.camunda.zeebe.protocol.record.value.JobRecordValue) Bpmn(io.camunda.zeebe.model.bpmn.Bpmn) Function(java.util.function.Function) Record(io.camunda.zeebe.protocol.record.Record) Strings(io.camunda.zeebe.test.util.Strings) Duration(java.time.Duration) Map(java.util.Map) EngineRule(io.camunda.zeebe.engine.util.EngineRule) BpmnModelInstance(io.camunda.zeebe.model.bpmn.BpmnModelInstance) AbstractFlowNodeBuilder(io.camunda.zeebe.model.bpmn.builder.AbstractFlowNodeBuilder) ClassRule(org.junit.ClassRule) Before(org.junit.Before) ControlledActorClock(io.camunda.zeebe.util.sched.clock.ControlledActorClock) RecordingExporter.jobBatchRecords(io.camunda.zeebe.test.util.record.RecordingExporter.jobBatchRecords) RecordingExporter.jobRecords(io.camunda.zeebe.test.util.record.RecordingExporter.jobRecords) Awaitility.await(org.awaitility.Awaitility.await) JobBatchIntent(io.camunda.zeebe.protocol.record.intent.JobBatchIntent) Assertions.assertThat(io.camunda.zeebe.protocol.record.Assertions.assertThat) Test(org.junit.Test) Assertions.entry(org.assertj.core.api.Assertions.entry) RecordingExporterTestWatcher(io.camunda.zeebe.test.util.record.RecordingExporterTestWatcher) Collectors(java.util.stream.Collectors) RandomString(org.assertj.core.internal.bytebuddy.utility.RandomString) RecordingExporter(io.camunda.zeebe.test.util.record.RecordingExporter) List(java.util.List) Rule(org.junit.Rule) RejectionType(io.camunda.zeebe.protocol.record.RejectionType) TestUtil.waitUntil(io.camunda.zeebe.test.util.TestUtil.waitUntil) RecordingExporter.processInstanceRecords(io.camunda.zeebe.test.util.record.RecordingExporter.processInstanceRecords) ByteValue(io.camunda.zeebe.util.ByteValue) JobIntent(io.camunda.zeebe.protocol.record.intent.JobIntent) RandomString(org.assertj.core.internal.bytebuddy.utility.RandomString) Test(org.junit.Test)

Aggregations

Bpmn (io.camunda.zeebe.model.bpmn.Bpmn)7 List (java.util.List)7 Collectors (java.util.stream.Collectors)7 EngineRule (io.camunda.zeebe.engine.util.EngineRule)6 BpmnModelInstance (io.camunda.zeebe.model.bpmn.BpmnModelInstance)6 Record (io.camunda.zeebe.protocol.record.Record)6 RejectionType (io.camunda.zeebe.protocol.record.RejectionType)6 Strings (io.camunda.zeebe.test.util.Strings)6 RecordingExporter (io.camunda.zeebe.test.util.record.RecordingExporter)6 RecordingExporterTestWatcher (io.camunda.zeebe.test.util.record.RecordingExporterTestWatcher)6 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)6 Before (org.junit.Before)6 ClassRule (org.junit.ClassRule)6 Rule (org.junit.Rule)6 Test (org.junit.Test)6 AbstractFlowNodeBuilder (io.camunda.zeebe.model.bpmn.builder.AbstractFlowNodeBuilder)3 ProcessBuilder (io.camunda.zeebe.model.bpmn.builder.ProcessBuilder)3 Message (io.camunda.zeebe.model.bpmn.instance.Message)3 DEPLOYMENT_PARTITION (io.camunda.zeebe.protocol.Protocol.DEPLOYMENT_PARTITION)3 Assertions (io.camunda.zeebe.protocol.record.Assertions)3