@Override public String getLatestDefinitionIdByKey(RepositoryService repositoryService, String key) { return repositoryService.createProcessDefinitionQuery().processDefinitionKey(key).latestVersion().singleResult().getId(); }
private void setUpMockDefinitionQuery(ProcessDefinition mockDefinition) { processDefinitionQueryMock = mock(ProcessDefinitionQuery.class); when(processDefinitionQueryMock.processDefinitionKey(MockProvider.EXAMPLE_PROCESS_DEFINITION_KEY)).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.processDefinitionId(MockProvider.EXAMPLE_PROCESS_DEFINITION_ID)).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.withoutTenantId()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.latestVersion()).thenReturn(processDefinitionQueryMock); when(processDefinitionQueryMock.singleResult()).thenReturn(mockDefinition); when(processDefinitionQueryMock.count()).thenReturn(1L); when(processDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDefinition)); when(repositoryServiceMock.createProcessDefinitionQuery()).thenReturn(processDefinitionQueryMock); }
@Test public void suspendProcessDefinitionForTenant() { // given activated process definitions ProcessDefinitionQuery query = engineRule.getRepositoryService().createProcessDefinitionQuery(); assertThat(query.active().count(), is(3L)); assertThat(query.suspended().count(), is(0L)); engineRule.getRepositoryService() .updateProcessDefinitionSuspensionState() .byProcessDefinitionKey(PROCESS_DEFINITION_KEY) .processDefinitionTenantId(TENANT_ONE) .suspend(); assertThat(query.active().count(), is(2L)); assertThat(query.suspended().count(), is(1L)); assertThat(query.suspended().tenantIdIn(TENANT_ONE).count(), is(1L)); }
public ProcessDefinition getProcessDefinition() { // TODO cache result to avoid multiple queries within one page request if (processDefinitionId!=null) { return repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult(); } else { return repositoryService.createProcessDefinitionQuery().processDefinitionKey(processDefinitionKey).latestVersion().singleResult(); } }
public ProcessDefinitionResource getProcessDefinitionByKeyAndTenantId(String processDefinitionKey, String tenantId) { ProcessDefinition processDefinition = getProcessEngine() .getRepositoryService() .createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey) .tenantIdIn(tenantId) .latestVersion() .singleResult(); if (processDefinition == null) { String errorMessage = String.format("No matching process definition with key: %s and tenant-id: %s", processDefinitionKey, tenantId); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getProcessDefinitionById(processDefinition.getId()); } }
public ProcessDefinitionResource getProcessDefinitionByKey(String processDefinitionKey) { ProcessDefinition processDefinition = getProcessEngine() .getRepositoryService() .createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey) .withoutTenantId() .latestVersion() .singleResult(); if(processDefinition == null){ String errorMessage = String.format("No matching process definition with key: %s and no tenant-id", processDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getProcessDefinitionById(processDefinition.getId()); } }
public ProcessDefinition call() throws Exception { return repositoryService .createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey) .singleResult(); } });
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, emptyProcess); ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, ProcessDefinition> processDefinitionsForTenant = getProcessDefinitionsForTenant(query.list()); assertThat(processDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(processDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
protected void assertProcessNotDeployed(String processKey) { long count = repositoryService .createProcessDefinitionQuery() .latestVersion() .processDefinitionKey(processKey) .count(); Assert.assertEquals("Process with key "+processKey+ " should not be deployed", 0, count); }
private String[] findProcessDefinitionIdsByKey(String processDefinitionKey) { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey).list(); List<String> processDefinitionIds = new ArrayList<String>(); for (ProcessDefinition processDefinition: processDefinitions) { processDefinitionIds.add(processDefinition.getId()); } return processDefinitionIds.toArray(new String[0]); }
public ProcessDefinition deployForTenantAndGetDefinition(String tenant, BpmnModelInstance bpmnModel) { Deployment deployment = deploy(createDeploymentBuilder().tenantId(tenant), Collections.singletonList(bpmnModel), Collections.<String>emptyList()); return processEngineRule.getRepositoryService() .createProcessDefinitionQuery() .deploymentId(deployment.getId()) .singleResult(); }
@Deployment public void testAlterProcessDefinitionKeyWhenDeploying() throws Exception { // Check if process-definition has different key assertEquals(0, repositoryService.createProcessDefinitionQuery().processDefinitionKey("oneTaskProcess").count()); assertEquals(1, repositoryService.createProcessDefinitionQuery().processDefinitionKey("oneTaskProcess-modified").count()); }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testFindProcessDefinitionById() { List<ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery().list(); assertEquals(1, definitions.size()); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(definitions.get(0).getId()).singleResult(); runtimeService.startProcessInstanceByKey("oneTaskProcess"); assertNotNull(processDefinition); assertEquals("oneTaskProcess", processDefinition.getKey()); assertEquals("The One Task Process", processDefinition.getName()); processDefinition = repositoryService.getProcessDefinition(definitions.get(0).getId()); assertEquals("This is a process for testing purposes", processDefinition.getDescription()); }
@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); }
@Deployment(resources = "org/camunda/bpm/engine/test/api/runtime/messageStartEvent.bpmn20.xml") @Test public void testStartProcessInstanceByMessageWithLastVersionOfProcessDefinition() { String deploymentId = repositoryService.createDeployment().addClasspathResource("org/camunda/bpm/engine/test/api/runtime/messageStartEvent_version2.bpmn20.xml").deploy().getId(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().latestVersion().singleResult(); ProcessInstance processInstance = runtimeService.startProcessInstanceByMessageAndProcessDefinitionId("newStartMessage", processDefinition.getId()); assertThat(processInstance, is(notNullValue())); assertThat(processInstance.getProcessDefinitionId(), is(processDefinition.getId())); // clean up repositoryService.deleteDeployment(deploymentId, true); }
@Test public void testDeleteProcessDefinitionWithAuthenticatedTenant() { //given deployment with two process definitions Deployment deployment = testRule.deployForTenant(TENANT_ONE, "org/camunda/bpm/engine/test/repository/twoProcesses.bpmn20.xml"); ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()); List<ProcessDefinition> processDefinitions = processDefinitionQuery.list(); //and user with tenant authentication identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); //when delete process definition with authenticated user repositoryService.deleteProcessDefinition(processDefinitions.get(0).getId()); //then process definition should be deleted identityService.clearAuthentication(); assertThat(processDefinitionQuery.count(), is(1L)); assertThat(processDefinitionQuery.tenantIdIn(TENANT_ONE).count(), is(1L)); }
public void testStartableInTasklistWithoutCreatePerm() { // given selectProcessDefinitionByKey(ONE_TASK_PROCESS_KEY); // when List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().startablePermissionCheck().startableInTasklist().list(); // then assertNotNull(processDefinitions); assertEquals(0, processDefinitions.size()); }
@Deployment(resources={"org/camunda/bpm/engine/test/api/repository/processOne.bpmn20.xml"}) public void testParsingNullVersionTag() { ProcessDefinition process = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionId() .asc() .singleResult(); assertEquals(null, process.getVersionTag()); }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/repository/processOne.bpmn20.xml", "org/camunda/bpm/engine/test/api/repository/processTwo.bpmn20.xml" }) public void testQueryForSuspendedDefinitions() { // default = all definitions List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery() .list(); assertEquals(2, processDefinitionList.size()); assertEquals(2, repositoryService.createProcessDefinitionQuery().active().count()); ProcessDefinition processDefinition = processDefinitionList.get(0); repositoryService.suspendProcessDefinitionById(processDefinition.getId()); assertEquals(2, repositoryService.createProcessDefinitionQuery().count()); assertEquals(1, repositoryService.createProcessDefinitionQuery().suspended().count()); }
private ProcessDefinition findOnlyProcessDefinition() { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list(); assertNotNull(processDefinitions); assertEquals(1, processDefinitions.size()); return processDefinitions.get(0); }