private void setUpRuntimeData(CaseDefinition mockCaseDefinition) { repositoryServiceMock = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(repositoryServiceMock); when(repositoryServiceMock.getCaseDefinition(eq(MockProvider.EXAMPLE_CASE_DEFINITION_ID))).thenReturn(mockCaseDefinition); when(repositoryServiceMock.getCaseModel(eq(MockProvider.EXAMPLE_CASE_DEFINITION_ID))).thenReturn(createMockCaseDefinitionCmmnXml()); caseDefinitionQueryMock = mock(CaseDefinitionQuery.class); when(caseDefinitionQueryMock.caseDefinitionKey(MockProvider.EXAMPLE_CASE_DEFINITION_KEY)).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.withoutTenantId()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.latestVersion()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.singleResult()).thenReturn(mockCaseDefinition); when(caseDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockCaseDefinition)); when(repositoryServiceMock.createCaseDefinitionQuery()).thenReturn(caseDefinitionQueryMock); }
public void testQueryByLatest() { CaseDefinitionQuery query = repositoryService.createCaseDefinitionQuery(); query .latestVersion(); verifyQueryResults(query, 3); query .caseDefinitionKey("one") .latestVersion(); verifyQueryResults(query, 1); query .caseDefinitionKey("two").latestVersion(); verifyQueryResults(query, 1); }
@Override public CaseDefinitionResource getCaseDefinitionByKey(String caseDefinitionKey) { CaseDefinition caseDefinition = getProcessEngine() .getRepositoryService() .createCaseDefinitionQuery() .caseDefinitionKey(caseDefinitionKey) .withoutTenantId() .latestVersion() .singleResult(); if (caseDefinition == null) { String errorMessage = String.format("No matching case definition with key: %s and no tenant-id", caseDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getCaseDefinitionById(caseDefinition.getId()); } }
@Override public CaseDefinitionResource getCaseDefinitionByKey(String caseDefinitionKey) { CaseDefinition caseDefinition = getProcessEngine() .getRepositoryService() .createCaseDefinitionQuery() .caseDefinitionKey(caseDefinitionKey) .withoutTenantId() .latestVersion() .singleResult(); if (caseDefinition == null) { String errorMessage = String.format("No matching case definition with key: %s and no tenant-id", caseDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getCaseDefinitionById(caseDefinition.getId()); } }
public CaseDefinitionResource getCaseDefinitionByKeyAndTenantId(String caseDefinitionKey, String tenantId) { CaseDefinition caseDefinition = getProcessEngine() .getRepositoryService() .createCaseDefinitionQuery() .caseDefinitionKey(caseDefinitionKey) .tenantIdIn(tenantId) .latestVersion() .singleResult(); if (caseDefinition == null) { String errorMessage = String.format("No matching case definition with key: %s and tenant-id: %s", caseDefinitionKey, tenantId); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getCaseDefinitionById(caseDefinition.getId()); } }
public CaseDefinitionResource getCaseDefinitionByKeyAndTenantId(String caseDefinitionKey, String tenantId) { CaseDefinition caseDefinition = getProcessEngine() .getRepositoryService() .createCaseDefinitionQuery() .caseDefinitionKey(caseDefinitionKey) .tenantIdIn(tenantId) .latestVersion() .singleResult(); if (caseDefinition == null) { String errorMessage = String.format("No matching case definition with key: %s and tenant-id: %s", caseDefinitionKey, tenantId); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getCaseDefinitionById(caseDefinition.getId()); } }
@Test public void testAdditionalParameters() { Map<String, String> queryParameters = getCompleteQueryParameters(); given() .queryParams(queryParameters) .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(CASE_DEFINITION_QUERY_URL); // assert query invocation verify(mockedQuery).caseDefinitionId(queryParameters.get("caseDefinitionId")); verify(mockedQuery).caseDefinitionCategory(queryParameters.get("category")); verify(mockedQuery).caseDefinitionCategoryLike(queryParameters.get("categoryLike")); verify(mockedQuery).caseDefinitionName(queryParameters.get("name")); verify(mockedQuery).caseDefinitionNameLike(queryParameters.get("nameLike")); verify(mockedQuery).deploymentId(queryParameters.get("deploymentId")); verify(mockedQuery).caseDefinitionKey(queryParameters.get("key")); verify(mockedQuery).caseDefinitionKeyLike(queryParameters.get("keyLike")); verify(mockedQuery).caseDefinitionVersion(Integer.parseInt(queryParameters.get("version"))); verify(mockedQuery).latestVersion(); verify(mockedQuery).caseDefinitionResourceName(queryParameters.get("resourceName")); verify(mockedQuery).caseDefinitionResourceNameLike(queryParameters.get("resourceNameLike")); verify(mockedQuery).list(); }
@Test public void testNonExistingCaseDefinitionRetrieval_ByKey() { String nonExistingKey = "aNonExistingDefinitionKey"; when(repositoryServiceMock.createCaseDefinitionQuery().caseDefinitionKey(nonExistingKey)).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.latestVersion()).thenReturn(caseDefinitionQueryMock); when(caseDefinitionQueryMock.singleResult()).thenReturn(null); when(caseDefinitionQueryMock.list()).thenReturn(Collections.<CaseDefinition> emptyList()); given() .pathParam("key", nonExistingKey) .then() .expect() .statusCode(Status.NOT_FOUND.getStatusCode()).contentType(ContentType.JSON) .body("type", is(RestException.class.getSimpleName())) .body("message", containsString("No matching case definition with key: " + nonExistingKey)) .when() .get(SINGLE_CASE_DEFINITION_BY_KEY_URL); }
public void testQueryByLatestNoTenantIdSet() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(caseDefinitionsForTenant.get(null).getVersion(), is(1)); }
@Override public String getLatestDefinitionIdByKey(RepositoryService repositoryService, String key) { return repositoryService.createCaseDefinitionQuery().caseDefinitionKey(key).latestVersion().singleResult().getId(); }
public void testQueryByLatestWithoutTenantId() { // deploy a second version without tenant id deployment(CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); CaseDefinition cDefinition = query.singleResult(); assertThat(cDefinition.getTenantId(), is(nullValue())); assertThat(cDefinition.getVersion(), is(2)); }
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
protected void createCaseInstance(String caseDefinitionKey) { CaseDefinition caseDefinition = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(caseDefinitionKey) .latestVersion() .singleResult(); caseService.createCaseInstanceById(caseDefinition.getId()); }
public void testQueryByLatestWithTenantIdsIncludeDefinitionsWithoutTenantId() { // deploy a second version without tenant id deployment(CMMN); // deploy a third version for tenant one deploymentForTenant(TENANT_ONE, CMMN); deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeCaseDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); Map<String, CaseDefinition> caseDefinitionsForTenant = getCaseDefinitionsForTenant(query.list()); assertThat(caseDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(3)); assertThat(caseDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(caseDefinitionsForTenant.get(null).getVersion(), is(2)); }
public void testQueryByLatestWithTenantId() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, CMMN); CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); CaseDefinition caseDefinition = query.singleResult(); assertThat(caseDefinition.getTenantId(), is(TENANT_ONE)); assertThat(caseDefinition.getVersion(), is(2)); query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); caseDefinition = query.singleResult(); assertThat(caseDefinition.getTenantId(), is(TENANT_TWO)); assertThat(caseDefinition.getVersion(), is(1)); }
@Test public void getPreviousCaseDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_ONE, CMMN); testRule.deployForTenant(TENANT_TWO, CMMN); testRule.deployForTenant(TENANT_TWO, CMMN); List<CaseDefinition> latestCaseDefinitions = repositoryService.createCaseDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); CaseDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((CaseDefinitionEntity) latestCaseDefinitions.get(0)); CaseDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((CaseDefinitionEntity) latestCaseDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
public void testStartCaseInstanceWithLatestBindingDifferentVersion() { deploymentForTenant(TENANT_ONE, CMMN_LATEST_WITH_MANUAL_ACTIVATION, CMMN_CASE); deploymentForTenant(TENANT_TWO, CMMN_LATEST_WITH_MANUAL_ACTIVATION, CMMN_CASE); deploymentForTenant(TENANT_TWO, CMMN_CASE); createCaseInstance("caseTaskCase", TENANT_ONE); createCaseInstance("caseTaskCase", TENANT_TWO); CaseInstanceQuery query = caseService.createCaseInstanceQuery().caseDefinitionKey("oneTaskCase"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); CaseDefinition latestCaseDefinitionTenantTwo = repositoryService.createCaseDefinitionQuery(). caseDefinitionKey("oneTaskCase").tenantIdIn(TENANT_TWO).latestVersion().singleResult(); query = caseService.createCaseInstanceQuery().caseDefinitionId(latestCaseDefinitionTenantTwo.getId()); assertThat(query.count(), is(1L)); }
public void testStartCaseInstanceWithLatestBindingDifferentVersion() { BpmnModelInstance callingProcess = Bpmn.createExecutableProcess("callingProcess") .startEvent() .callActivity() .camundaCaseRef("Case_1") .camundaCaseBinding("latest") .endEvent() .done(); deploymentForTenant(TENANT_ONE, CMMN, callingProcess); deploymentForTenant(TENANT_TWO, CMMN, callingProcess); deploymentForTenant(TENANT_TWO, CMMN); runtimeService.createProcessInstanceByKey("callingProcess").processDefinitionTenantId(TENANT_ONE).execute(); runtimeService.createProcessInstanceByKey("callingProcess").processDefinitionTenantId(TENANT_TWO).execute(); CaseInstanceQuery query = caseService.createCaseInstanceQuery().caseDefinitionKey("Case_1"); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); CaseDefinition latestCaseDefinitionTenantTwo = repositoryService.createCaseDefinitionQuery().tenantIdIn(TENANT_TWO).latestVersion().singleResult(); query = caseService.createCaseInstanceQuery().caseDefinitionId(latestCaseDefinitionTenantTwo.getId()); assertThat(query.count(), is(1L)); }
.createCaseDefinitionQuery() .caseDefinitionKey(ONE_TASK_CASE) .latestVersion() .singleResult() .getId();
.createCaseDefinitionQuery() .caseDefinitionKey(ONE_TASK_CASE) .latestVersion() .singleResult() .getId();