@Override public void checkCreateProcessInstance(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("create an instance of the process definition '"+ processDefinition.getId() + "'"); } }
@Test public void canCreateMigrationPlanForNoTenants() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); // when MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(sharedDefinition.getId(), sharedDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
public void testGetDeployedStartForm() { // given String processDefinitionId = selectProcessDefinitionByKey(FORM_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, FORM_PROCESS_KEY, userId, READ); // when InputStream inputStream = formService.getDeployedStartForm(processDefinitionId); assertNotNull(inputStream); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml" }) public void testDeleteDeploymentCascadeWithRunningInstances() { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list(); assertEquals(1, processDefinitions.size()); ProcessDefinition processDefinition = processDefinitions.get(0); runtimeService.startProcessInstanceById(processDefinition.getId()); // Try to delete the deployment, no exception should be thrown repositoryService.deleteDeployment(processDefinition.getDeploymentId(), true); }
@Test public void canCreateMigrationPlanFromTenantToNoTenant() { // given ProcessDefinition sharedDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition tenantDefinition = testHelper.deployForTenantAndGetDefinition(TENANT_ONE, ProcessModels.ONE_TASK_PROCESS); // when MigrationPlan migrationPlan = engineRule.getRuntimeService().createMigrationPlan(tenantDefinition.getId(), sharedDefinition.getId()) .mapEqualActivities() .build(); // then Assert.assertNotNull(migrationPlan); }
@Deployment(resources = {"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testSubmitTaskFormFailAfterProcessInstanceSuspendByProcessDefinitionId() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); runtimeService.suspendProcessInstanceByProcessDefinitionId(processDefinition.getId()); try { formService.submitTaskFormData(taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult().getId(), new HashMap<String, String>()); fail(); } catch(SuspendedEntityInteractionException e) { // This is expected } }
public void testQueryIncludingFailedJobsWithoutAuthorizationOnProcessInstance() { // given String processDefinitionId = selectProcessDefinitionByKey(ONE_INCIDENT_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, ONE_INCIDENT_PROCESS_KEY, userId, READ); // when ActivityStatistics statistics = managementService .createActivityStatisticsQuery(processDefinitionId) .includeFailedJobs() .singleResult(); // then assertNull(statistics); }
@Test public void testQueryByNonLeafActivityId() { // given ProcessDefinition processDefinition = testHelper.deployAndGetDefinition(FORK_JOIN_SUB_PROCESS_MODEL); // when runtimeService.startProcessInstanceById(processDefinition.getId()); // then ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().activityIdIn("subProcess", "fork"); assertNoProcessInstancesReturned(query); }
@Deployment public void testRenderDateFieldWithPattern() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); String renderedForm = (String) formService.getRenderedStartForm(processDefinition.getId()); String expectedForm = IoUtil.readFileAsString("org/camunda/bpm/engine/test/api/form/HtmlFormEngineTest.testRenderDateFieldWithPattern.html"); assertHtmlEquals(expectedForm, renderedForm); }
@Test public void restartNotExistingProcessInstance() { ProcessDefinition processDefinition = testRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); try { runtimeService.restartProcessInstances(processDefinition.getId()).startBeforeActivity("bar").processInstanceIds("aaa").execute(); fail("exception expected"); } catch (BadUserRequestException e) { Assert.assertThat(e.getMessage(), containsString("Historic process instance cannot be found")); } }
public void deployAndCompleteProcesses() { ProcessDefinition sourceDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); processInstance2 = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); List<String> processInstanceIds = Arrays.asList( new String[]{processInstance.getId(), processInstance2.getId()}); runtimeService.deleteProcessInstances(processInstanceIds, null, false, false); historicProcessInstance = historyService.createHistoricProcessInstanceQuery() .processInstanceId(processInstance.getId()).singleResult(); historicProcessInstance2 = historyService.createHistoricProcessInstanceQuery() .processInstanceId(processInstance2.getId()).singleResult(); }
public ProcessInstance startAndDeleteProcessInstance(String tenantId, BpmnModelInstance modelInstance) { String deploymentId = deploymentForTenant(TENANT_ONE, PROCESS); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult(); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); runtimeService.deleteProcessInstance(processInstance.getId(), "test"); return processInstance; }
@Test public void testDeleteProcessDefinition() { // given deployment with two process definitions in one xml model file deployment = repositoryService.createDeployment() .addClasspathResource("org/camunda/bpm/engine/test/repository/twoProcesses.bpmn20.xml") .deploy(); List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list(); //when a process definition is been deleted repositoryService.deleteProcessDefinition(processDefinitions.get(0).getId()); //then only one process definition should remain assertEquals(1, repositoryService.createProcessDefinitionQuery().count()); }
public void testSuspendByProcessDefinitionIdWithUpdatePermissionOnProcessDefinition() { // given createGrantAuthorization(PROCESS_DEFINITION, TIMER_BOUNDARY_PROCESS_KEY, userId, UPDATE); String processDefinitionId = selectProcessDefinitionByKey(TIMER_BOUNDARY_PROCESS_KEY).getId(); // when managementService.suspendJobDefinitionByProcessDefinitionId(processDefinitionId); // then JobDefinition jobDefinition = selectJobDefinitionByProcessDefinitionKey(TIMER_BOUNDARY_PROCESS_KEY); assertNotNull(jobDefinition); assertTrue(jobDefinition.isSuspended()); }
protected List<String> setupFailedJobs() { List<String> jobIds = new ArrayList<String>(); Deployment deploy = testHelper.deploy(JOB_EXCEPTION_DEFINITION_XML); ProcessDefinition sourceDefinition = engineRule.getRepositoryService() .createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult(); processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceDefinition.getId()); List<Job> jobs = managementService.createJobQuery().processInstanceId(processInstance.getId()).list(); for (Job job : jobs) { jobIds.add(job.getId()); } return jobIds; }
protected ExternalTask startExternalTaskProcess() { BpmnModelInstance oneExternalTaskProcess = createDefaultExternalTaskModel().build(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(oneExternalTaskProcess); ProcessInstance pi = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); return externalTaskService.createExternalTaskQuery().processInstanceId(pi.getId()).singleResult(); }
protected ExternalTask startExternalTaskProcessGivenActivityId(String activityId) { BpmnModelInstance processModelWithCustomActivityId = createDefaultExternalTaskModel().externalTaskName(activityId).build(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(processModelWithCustomActivityId); ProcessInstance pi = runtimeService.startProcessInstanceById(sourceProcessDefinition.getId()); return externalTaskService.createExternalTaskQuery().processInstanceId(pi.getId()).singleResult(); }
@Test @Deployment(resources = {"org/camunda/bpm/engine/test/api/variables/scope/TargetVariableScopeTest.testExecutionWithoutProperTargetScope.bpmn","org/camunda/bpm/engine/test/api/variables/scope/doer.bpmn"}) public void testExecutionWithoutProperTargetScope () { VariableMap variables = Variables.createVariables().putValue("orderIds", Arrays.asList(new int[]{1, 2, 3})); //fails due to inappropriate variable scope target thrown.expect(ScriptEvaluationException.class); ProcessDefinition processDefinition = engineRule.getRepositoryService().createProcessDefinitionQuery().processDefinitionKey("Process_MultiInstanceCallAcitivity").singleResult(); thrown.expectMessage(startsWith("Unable to evaluate script while executing activity 'CallActivity_1' in the process definition with id '" + processDefinition.getId() + "': org.camunda.bpm.engine.ProcessEngineException: ENGINE-20011 Scope with specified activity Id NOT_EXISTING and execution")); engineRule.getRuntimeService().startProcessInstanceByKey("Process_MultiInstanceCallAcitivity",variables); }
public void testSuspendJobByProcessDefinitionIdWihtUpdatePermissionOnProcessDefinition() { // given String processInstanceId = startProcessInstanceByKey(TIMER_BOUNDARY_PROCESS_KEY).getId(); String processDefinitionId = selectProcessDefinitionByKey(TIMER_BOUNDARY_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, TIMER_BOUNDARY_PROCESS_KEY, userId, UPDATE_INSTANCE); // when managementService.suspendJobByProcessDefinitionId(processDefinitionId); // then Job job = selectJobByProcessInstanceId(processInstanceId); assertNotNull(job); assertTrue(job.isSuspended()); }
@Deployment(resources = {"org/camunda/bpm/engine/test/api/repository/ProcessDefinitionSuspensionTest.testSuspendStartTimerOnProcessDefinitionSuspension.bpmn20.xml"}) public void testSuspendStartTimerOnProcessDefinitionSuspensionById() { ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().singleResult(); Job startTimer = managementService.createJobQuery().timers().singleResult(); assertFalse(startTimer.isSuspended()); // when repositoryService.suspendProcessDefinitionById(pd.getId()); // then // refresh job startTimer = managementService.createJobQuery().timers().singleResult(); assertTrue(startTimer.isSuspended()); }