private void setUpRuntimeData(DecisionDefinition mockDecisionDefinition) { repositoryServiceMock = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(repositoryServiceMock); when(repositoryServiceMock.getDecisionDefinition(eq(MockProvider.EXAMPLE_DECISION_DEFINITION_ID))).thenReturn(mockDecisionDefinition); when(repositoryServiceMock.getDecisionModel(eq(MockProvider.EXAMPLE_DECISION_DEFINITION_ID))).thenReturn(createMockDecisionDefinitionDmnXml()); decisionDefinitionQueryMock = mock(DecisionDefinitionQuery.class); when(decisionDefinitionQueryMock.decisionDefinitionKey(MockProvider.EXAMPLE_DECISION_DEFINITION_KEY)).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.withoutTenantId()).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.latestVersion()).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.singleResult()).thenReturn(mockDecisionDefinition); when(decisionDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDecisionDefinition)); when(repositoryServiceMock.createDecisionDefinitionQuery()).thenReturn(decisionDefinitionQueryMock); }
@Test public void queryByLatest() { DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); query .latestVersion(); verifyQueryResults(query, 3); query .decisionDefinitionKey("one") .latestVersion(); verifyQueryResults(query, 1); query .decisionDefinitionKey("two").latestVersion(); verifyQueryResults(query, 1); }
public DecisionDefinitionResource getDecisionDefinitionByKeyAndTenantId(String decisionDefinitionKey, String tenantId) { DecisionDefinition decisionDefinition = getProcessEngine() .getRepositoryService() .createDecisionDefinitionQuery() .decisionDefinitionKey(decisionDefinitionKey) .tenantIdIn(tenantId) .latestVersion() .singleResult(); if (decisionDefinition == null) { String errorMessage = String.format("No matching decision definition with key: %s and tenant-id: %s", decisionDefinitionKey, tenantId); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionDefinitionById(decisionDefinition.getId()); } }
public DecisionDefinitionResource getDecisionDefinitionByKeyAndTenantId(String decisionDefinitionKey, String tenantId) { DecisionDefinition decisionDefinition = getProcessEngine() .getRepositoryService() .createDecisionDefinitionQuery() .decisionDefinitionKey(decisionDefinitionKey) .tenantIdIn(tenantId) .latestVersion() .singleResult(); if (decisionDefinition == null) { String errorMessage = String.format("No matching decision definition with key: %s and tenant-id: %s", decisionDefinitionKey, tenantId); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionDefinitionById(decisionDefinition.getId()); } }
@Override public DecisionDefinitionResource getDecisionDefinitionByKey(String decisionDefinitionKey) { DecisionDefinition decisionDefinition = getProcessEngine() .getRepositoryService() .createDecisionDefinitionQuery() .decisionDefinitionKey(decisionDefinitionKey) .withoutTenantId() .latestVersion() .singleResult(); if (decisionDefinition == null) { String errorMessage = String.format("No matching decision definition with key: %s and no tenant-id", decisionDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionDefinitionById(decisionDefinition.getId()); } }
@Override public DecisionDefinitionResource getDecisionDefinitionByKey(String decisionDefinitionKey) { DecisionDefinition decisionDefinition = getProcessEngine() .getRepositoryService() .createDecisionDefinitionQuery() .decisionDefinitionKey(decisionDefinitionKey) .withoutTenantId() .latestVersion() .singleResult(); if (decisionDefinition == null) { String errorMessage = String.format("No matching decision definition with key: %s and no tenant-id", decisionDefinitionKey); throw new RestException(Status.NOT_FOUND, errorMessage); } else { return getDecisionDefinitionById(decisionDefinition.getId()); } }
@Test public void testNonExistingDecisionDefinitionRetrieval_ByKey() { String nonExistingKey = "aNonExistingDefinitionKey"; when(repositoryServiceMock.createDecisionDefinitionQuery().decisionDefinitionKey(nonExistingKey)).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.latestVersion()).thenReturn(decisionDefinitionQueryMock); when(decisionDefinitionQueryMock.singleResult()).thenReturn(null); when(decisionDefinitionQueryMock.list()).thenReturn(Collections.<DecisionDefinition> 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 decision definition with key: " + nonExistingKey)) .when() .get(SINGLE_DECISION_DEFINITION_BY_KEY_URL); }
public void testQueryByLatestNoTenantIdSet() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, DecisionDefinition> decisionDefinitionsForTenant = getDecisionDefinitionsForTenant(query.list()); assertThat(decisionDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(decisionDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(decisionDefinitionsForTenant.get(null).getVersion(), is(1)); }
@Test public void testAdditionalParameters() { Map<String, String> queryParameters = getCompleteQueryParameters(); given() .queryParams(queryParameters) .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(DECISION_DEFINITION_QUERY_URL); // assert query invocation verify(mockedQuery).decisionDefinitionId(queryParameters.get("decisionDefinitionId")); verify(mockedQuery).decisionDefinitionCategory(queryParameters.get("category")); verify(mockedQuery).decisionDefinitionCategoryLike(queryParameters.get("categoryLike")); verify(mockedQuery).decisionDefinitionName(queryParameters.get("name")); verify(mockedQuery).decisionDefinitionNameLike(queryParameters.get("nameLike")); verify(mockedQuery).deploymentId(queryParameters.get("deploymentId")); verify(mockedQuery).decisionDefinitionKey(queryParameters.get("key")); verify(mockedQuery).decisionDefinitionKeyLike(queryParameters.get("keyLike")); verify(mockedQuery).decisionDefinitionVersion(Integer.parseInt(queryParameters.get("version"))); verify(mockedQuery).latestVersion(); verify(mockedQuery).decisionDefinitionResourceName(queryParameters.get("resourceName")); verify(mockedQuery).decisionDefinitionResourceNameLike(queryParameters.get("resourceNameLike")); verify(mockedQuery).decisionRequirementsDefinitionId(queryParameters.get("decisionRequirementsDefinitionId")); verify(mockedQuery).decisionRequirementsDefinitionKey(queryParameters.get("decisionRequirementsDefinitionKey")); verify(mockedQuery).versionTag(queryParameters.get("versionTag")); verify(mockedQuery).versionTagLike(queryParameters.get("versionTagLike")); verify(mockedQuery).withoutDecisionRequirementsDefinition(); verify(mockedQuery).list(); }
@Override public String getLatestDefinitionIdByKey(RepositoryService repositoryService, String key) { return repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(key).latestVersion().singleResult().getId(); }
public void testQueryByLatestWithoutTenantId() { // deploy a second version without tenant id deployment(DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); DecisionDefinition decisionDefinition = query.singleResult(); assertThat(decisionDefinition.getTenantId(), is(nullValue())); assertThat(decisionDefinition.getVersion(), is(2)); }
public void testQueryByLatestWithTenantIdsIncludeDefinitionsWithoutTenantId() { // deploy a second version without tenant id deployment(DMN); // deploy a third version for tenant one deploymentForTenant(TENANT_ONE, DMN); deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .includeDecisionDefinitionsWithoutTenantId(); assertThat(query.count(), is(3L)); Map<String, DecisionDefinition> decisionDefinitionsForTenant = getDecisionDefinitionsForTenant(query.list()); assertThat(decisionDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(3)); assertThat(decisionDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(decisionDefinitionsForTenant.get(null).getVersion(), is(2)); }
public void testQueryByLatestWithTenantIds() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionDefinition> decisionDefinitionsForTenant = getDecisionDefinitionsForTenant(query.list()); assertThat(decisionDefinitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(decisionDefinitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
query .decisionDefinitionId("test") .latestVersion() .list(); fail(); query .decisionDefinitionName("test") .latestVersion() .list(); fail(); query .decisionDefinitionNameLike("test") .latestVersion() .list(); fail(); query .decisionDefinitionVersion(1) .latestVersion() .list(); fail(); query .deploymentId("test") .latestVersion() .list(); fail();
public void testQueryByLatestWithTenantId() { // deploy a second version for tenant one deploymentForTenant(TENANT_ONE, DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE); assertThat(query.count(), is(1L)); DecisionDefinition decisionDefinition = query.singleResult(); assertThat(decisionDefinition.getTenantId(), is(TENANT_ONE)); assertThat(decisionDefinition.getVersion(), is(2)); query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_TWO); assertThat(query.count(), is(1L)); decisionDefinition = query.singleResult(); assertThat(decisionDefinition.getTenantId(), is(TENANT_TWO)); assertThat(decisionDefinition.getVersion(), is(1)); }
@Test public void getPreviousDecisionDefinitionWithTenantId() { testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_ONE, DMN); testRule.deployForTenant(TENANT_TWO, DMN); testRule.deployForTenant(TENANT_TWO, DMN); List<DecisionDefinition> latestDefinitions = repositoryService.createDecisionDefinitionQuery() .latestVersion() .orderByTenantId() .asc() .list(); DecisionDefinitionEntity previousDefinitionTenantOne = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(0)); DecisionDefinitionEntity previousDefinitionTenantTwo = getPreviousDefinition((DecisionDefinitionEntity) latestDefinitions.get(1)); assertThat(previousDefinitionTenantOne.getVersion(), is(2)); assertThat(previousDefinitionTenantOne.getTenantId(), is(TENANT_ONE)); assertThat(previousDefinitionTenantTwo.getVersion(), is(1)); assertThat(previousDefinitionTenantTwo.getTenantId(), is(TENANT_TWO)); }
@Override public String getLatestDefinitionIdByKey(RepositoryService repositoryService, String key) { return repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(key).latestVersion().singleResult().getId(); }
public void testQueryByLatestWithoutTenantId() { // deploy a second version without tenant id deployment(DMN); DecisionDefinitionQuery query = repositoryService .createDecisionDefinitionQuery() .decisionDefinitionKey(DECISION_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); DecisionDefinition decisionDefinition = query.singleResult(); assertThat(decisionDefinition.getTenantId(), is(nullValue())); assertThat(decisionDefinition.getVersion(), is(2)); }