@Override public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, String businessKey, String caseInstanceId, Map<String, Object> variables) { return createProcessInstanceByKey(processDefinitionKey) .businessKey(businessKey) .caseInstanceId(caseInstanceId) .setVariables(variables) .execute(); }
protected ProcessInstance startProcessInstanceForTenant(String tenant) { return runtimeService.createProcessInstanceByKey("testProcess") .processDefinitionTenantId(tenant) .execute(); }
protected ProcessInstance startProcessInstanceForTenant(String tenant, String var) { return runtimeService.createProcessInstanceByKey("testProcess") .setVariable(VARIABLE_NAME, var) .processDefinitionTenantId(tenant) .execute(); }
@Override public ProcessInstance startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map<String, Object> variables) { return createProcessInstanceByKey(processDefinitionKey) .businessKey(businessKey) .setVariables(variables) .execute(); }
@Override public ProcessInstance startProcessInstanceById(String processDefinitionId, String businessKey, String caseInstanceId) { return createProcessInstanceById(processDefinitionId) .businessKey(businessKey) .caseInstanceId(caseInstanceId) .execute(); }
@SuppressWarnings("unchecked") protected ProcessInstantiationBuilder setUpMockInstantiationBuilder() { ProcessInstanceWithVariables resultInstanceWithVariables = MockProvider.createMockInstanceWithVariables(); ProcessInstantiationBuilder mockInstantiationBuilder = mock(ProcessInstantiationBuilder.class); when(mockInstantiationBuilder.startAfterActivity(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.startBeforeActivity(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.startTransition(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.setVariables(any(Map.class))).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.setVariablesLocal(any(Map.class))).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.businessKey(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.caseInstanceId(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.execute(anyBoolean(), anyBoolean())).thenReturn(resultInstanceWithVariables); when(mockInstantiationBuilder.executeWithVariablesInReturn(anyBoolean(), anyBoolean())).thenReturn(resultInstanceWithVariables); return mockInstantiationBuilder; }
inOrder.verify(mockInstantiationBuilder).businessKey("aBusinessKey"); inOrder.verify(mockInstantiationBuilder).caseInstanceId("aCaseInstanceId"); inOrder.verify(mockInstantiationBuilder).setVariables(argThat(EqualsVariableMap.matches() .matcher("processVariable", EqualsPrimitiveValue.stringValue("aString")))); inOrder.verify(mockInstantiationBuilder).startBeforeActivity("activityId"); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.stringValue("valueLocal"))); verify(mockInstantiationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.stringValue("value"))); inOrder.verify(mockInstantiationBuilder).startAfterActivity("activityId"); verify(mockInstantiationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.integerValue(52))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(74))); inOrder.verify(mockInstantiationBuilder).startTransition("transitionId"); verify(mockInstantiationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.integerValue(53))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(75))); inOrder.verify(mockInstantiationBuilder).executeWithVariablesInReturn(false, false);
protected ProcessInstanceWithVariables startProcessInstanceAtActivities(StartProcessInstanceDto dto) { Map<String, Object> processInstanceVariables = VariableValueDto.toMap(dto.getVariables(), engine, objectMapper); String businessKey = dto.getBusinessKey(); String caseInstanceId = dto.getCaseInstanceId(); ProcessInstantiationBuilder instantiationBuilder = engine.getRuntimeService() .createProcessInstanceById(processDefinitionId) .businessKey(businessKey) .caseInstanceId(caseInstanceId) .setVariables(processInstanceVariables); if (dto.getStartInstructions() != null && !dto.getStartInstructions().isEmpty()) { for (ProcessInstanceModificationInstructionDto instruction : dto.getStartInstructions()) { instruction.applyTo(instantiationBuilder, engine, objectMapper); } } return instantiationBuilder.executeWithVariablesInReturn(dto.isSkipCustomListeners(), dto.isSkipIoMappings()); }
@Test @Deployment(resources = SUBPROCESS_PROCESS) public void testReturnVariablesFromStartWithWaitstateStartInSubProcess() { //given execute process with variables and wait state in sub process ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService() .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", new byte[]{127, 34, 64})) .startBeforeActivity("innerTask") .executeWithVariablesInReturn(true, true); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 4); }
protected String startProcess(String processDefinitionKey, String activity) { return runtimeService .createProcessInstanceByKey(processDefinitionKey) .startBeforeActivity(activity) .execute().getId(); }
@Override public ProcessInstance startProcessInstanceById(String processDefinitionId, Map<String, Object> variables) { return createProcessInstanceById(processDefinitionId) .setVariables(variables) .execute(); }
@Override public ProcessInstance startProcessInstanceById(String processDefinitionId, String businessKey) { return createProcessInstanceById(processDefinitionId) .businessKey(businessKey) .execute(); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testExpressionEvaluatesToNonIntegerValue() { // when try { runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task3") .setVariable("priority", 4.2d) .execute(); fail("this should not succeed since the priority must be integer"); } catch (ProcessEngineException e) { assertTextPresentIgnoreCase("Priority value must be either Short, Integer, or Long", e.getMessage()); } }
@Deployment(resources = SUBPROCESS_PROCESS) public void testSetProcessInstanceVariable() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", "aValue4")) .startBeforeActivity("innerTask") .execute(); // then List<VariableInstance> variables = runtimeService.createVariableInstanceQuery() .orderByVariableName().asc().list(); assertEquals(4, variables.size()); assertEquals("aVariable1", variables.get(0).getName()); assertEquals("aValue1", variables.get(0).getValue()); assertEquals(instance.getId(), variables.get(0).getExecutionId()); assertEquals("aVariable2", variables.get(1).getName()); assertEquals("aValue2", variables.get(1).getValue()); assertEquals(instance.getId(), variables.get(1).getExecutionId()); assertEquals("aVariable3", variables.get(2).getName()); assertEquals("aValue3", variables.get(2).getValue()); assertEquals(instance.getId(), variables.get(2).getExecutionId()); assertEquals("aVariable4", variables.get(3).getName()); assertEquals("aValue4", variables.get(3).getValue()); assertEquals(instance.getId(), variables.get(3).getExecutionId()); }
@Test public void testProcessInstantiationWithCaseInstanceIdAndBusinessKey() throws IOException { Map<String, Object> json = new HashMap<String, Object>(); json.put("caseInstanceId", "myCaseInstanceId"); json.put("businessKey", "myBusinessKey"); given().pathParam("id", MockProvider.EXAMPLE_PROCESS_DEFINITION_ID) .contentType(POST_JSON_CONTENT_TYPE).body(json) .then().expect() .statusCode(Status.OK.getStatusCode()) .body("id", equalTo(MockProvider.EXAMPLE_PROCESS_INSTANCE_ID)) .when().post(START_PROCESS_INSTANCE_URL); verify(runtimeServiceMock).createProcessInstanceById(eq(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID)); verify(mockInstantiationBuilder).businessKey("myBusinessKey"); verify(mockInstantiationBuilder).caseInstanceId("myCaseInstanceId"); verify(mockInstantiationBuilder).executeWithVariablesInReturn(anyBoolean(), anyBoolean()); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testSingleActivityInstantiationSetCaseInstanceId() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("exclusiveGateway") .caseInstanceId("caseInstanceId") .startBeforeActivity("task1") .execute(); // then assertNotNull(instance); assertEquals("caseInstanceId", instance.getCaseInstanceId()); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testSingleActivityInstantiationSetBusinessKey() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("exclusiveGateway") .businessKey("businessKey") .startBeforeActivity("task1") .execute(); // then assertNotNull(instance); assertEquals("businessKey", instance.getBusinessKey()); }
@Test public void testTriggerGlobalEventSubProcess() { //given deployConditionalEventSubProcess(TASK_MODEL, CONDITIONAL_EVENT_PROCESS_KEY, true); //when runtimeService.createProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY) .startBeforeActivity(TASK_BEFORE_CONDITION_ID) .setVariable(VARIABLE_NAME, "1") .executeWithVariablesInReturn(); //then tasksAfterVariableIsSet = taskService.createTaskQuery().list(); assertEquals(1, tasksAfterVariableIsSet.size()); assertEquals(TASK_AFTER_CONDITION_ID, tasksAfterVariableIsSet.get(0).getTaskDefinitionKey()); }
@Before public void setUp() throws Exception { testRule.deployForTenant(TENANT_ONE, PROCESS); testRule.deployForTenant(TENANT_TWO, PROCESS); testRule.deploy(PROCESS); engineRule.getRuntimeService().createProcessInstanceByKey(PROCESS_DEFINITION_KEY).processDefinitionTenantId(TENANT_ONE).execute(); engineRule.getRuntimeService().createProcessInstanceByKey(PROCESS_DEFINITION_KEY).processDefinitionTenantId(TENANT_TWO).execute(); engineRule.getRuntimeService().createProcessInstanceByKey(PROCESS_DEFINITION_KEY).processDefinitionWithoutTenantId().execute(); }
public void testFailToStartProcessInstanceAtActivityByKeyForOtherTenant() { deploymentForTenant(TENANT_ONE, PROCESS); try { runtimeService.createProcessInstanceByKey("testProcess") .processDefinitionTenantId(TENANT_TWO) .startBeforeActivity("userTask") .execute(); fail("expected exception"); } catch (ProcessEngineException e) { assertThat(e.getMessage(), containsString("no processes deployed")); } }