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 testFailQueryByTenantIdNull() { try { repositoryService.createCaseDefinitionQuery() .tenantIdIn((String) null); fail("expected exception"); } catch (NullValueException e) { } }
public void testQueryByTenantId() { CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); query = repositoryService. createCaseDefinitionQuery() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); }
public void testQueryByNonExistingTenantId() { CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .tenantIdIn("nonExisting"); assertThat(query.count(), is(0L)); }
public void testQueryByTenantIds() { CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO); assertThat(query.count(), is(2L)); }
public void testQueryAuthenticatedTenant() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE)); CaseDefinitionQuery query = repositoryService.createCaseDefinitionQuery(); assertThat(query.count(), is(2L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(0L)); assertThat(query.tenantIdIn(TENANT_ONE, TENANT_TWO).includeCaseDefinitionsWithoutTenantId().count(), is(2L)); }
public void testQuerySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<CaseDefinition> caseDefinitions = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(caseDefinitions.size(), is(2)); assertThat(caseDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(caseDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
public void testQuerySortingDesc() { // exclude definitions without tenant id because of database-specific ordering List<CaseDefinition> caseDefinitions = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(caseDefinitions.size(), is(2)); assertThat(caseDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(caseDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
public void testQueryAuthenticatedTenants() { identityService.setAuthentication("user", null, Arrays.asList(TENANT_ONE, TENANT_TWO)); CaseDefinitionQuery query = repositoryService.createCaseDefinitionQuery(); assertThat(query.count(), is(3L)); assertThat(query.tenantIdIn(TENANT_ONE).count(), is(1L)); assertThat(query.tenantIdIn(TENANT_TWO).count(), is(1L)); assertThat(query.withoutTenantId().count(), is(1L)); }
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()); } }
public void testQueryByTenantIdsIncludeDefinitionsWithoutTenantId() { CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE) .includeCaseDefinitionsWithoutTenantId(); assertThat(query.count(), is(2L)); query = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_TWO) .includeCaseDefinitionsWithoutTenantId(); assertThat(query.count(), is(2L)); query = repositoryService .createCaseDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeCaseDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); }
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)); }
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 testQueryByKey() { CaseDefinitionQuery query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY); // one definition for each tenant assertThat(query.count(), is(3L)); query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .withoutTenantId(); // one definition without tenant id assertThat(query.count(), is(1L)); query = repositoryService .createCaseDefinitionQuery() .caseDefinitionKey(CASE_DEFINITION_KEY) .tenantIdIn(TENANT_ONE); // one definition for tenant one assertThat(query.count(), is(1L)); }
@Test public void testCreateCaseInstanceByCaseDefinitionKeyAndTenantId() { CaseDefinition mockDefinition = MockProvider.mockCaseDefinition().tenantId(MockProvider.EXAMPLE_TENANT_ID).build(); setUpRuntimeData(mockDefinition); given() .pathParam("key", MockProvider.EXAMPLE_CASE_DEFINITION_KEY) .pathParam("tenant-id", MockProvider.EXAMPLE_TENANT_ID) .contentType(POST_JSON_CONTENT_TYPE) .body(EMPTY_JSON_OBJECT) .then() .expect() .statusCode(Status.OK.getStatusCode()) .body("id", equalTo(MockProvider.EXAMPLE_CASE_INSTANCE_ID)) .when() .post(CREATE_INSTANCE_BY_KEY_AND_TENANT_ID_URL); verify(caseDefinitionQueryMock).tenantIdIn(MockProvider.EXAMPLE_TENANT_ID); verify(caseServiceMock).withCaseDefinition(MockProvider.EXAMPLE_CASE_DEFINITION_ID); verify(caseInstanceBuilder).create(); }
protected void createCaseInstance(String tenantId) { String caseDefinitionId = null; CaseDefinitionQuery caseDefinitionQuery = repositoryService.createCaseDefinitionQuery().caseDefinitionKey("oneTaskCase"); if (tenantId == null) { caseDefinitionId = caseDefinitionQuery.withoutTenantId().singleResult().getId(); } else { caseDefinitionId = caseDefinitionQuery.tenantIdIn(tenantId).singleResult().getId(); } caseService.withCaseDefinition(caseDefinitionId).create(); }
protected void createCaseInstance(String tenantId) { String caseDefinitionId = null; CaseDefinitionQuery caseDefinitionQuery = repositoryService.createCaseDefinitionQuery().caseDefinitionKey("oneTaskCase"); if (tenantId == null) { caseDefinitionId = caseDefinitionQuery.withoutTenantId().singleResult().getId(); } else { caseDefinitionId = caseDefinitionQuery.tenantIdIn(tenantId).singleResult().getId(); } caseService.withCaseDefinition(caseDefinitionId).create(); }
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)); }