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'");
}
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());
}
Aggregations