@Override public List<DecisionRequirementsDefinitionDto> getDecisionRequirementsDefinitions(UriInfo uriInfo, Integer firstResult, Integer maxResults) { DecisionRequirementsDefinitionQueryDto queryDto = new DecisionRequirementsDefinitionQueryDto(getObjectMapper(), uriInfo.getQueryParameters()); List<DecisionRequirementsDefinitionDto> dtos = new ArrayList<DecisionRequirementsDefinitionDto>(); ProcessEngine engine = getProcessEngine(); DecisionRequirementsDefinitionQuery query = queryDto.toQuery(engine); List<DecisionRequirementsDefinition> matchingDefinitions = null; if (firstResult != null || maxResults != null) { matchingDefinitions = executePaginatedQuery(query, firstResult, maxResults); } else { matchingDefinitions = query.list(); } for (DecisionRequirementsDefinition definition : matchingDefinitions) { DecisionRequirementsDefinitionDto dto = DecisionRequirementsDefinitionDto.fromDecisionRequirementsDefinition(definition); dtos.add(dto); } return dtos; }
private DecisionRequirementsDefinitionQuery createMockQuery(List<DecisionRequirementsDefinition> mockedDefinitions) { DecisionRequirementsDefinitionQuery query = mock(DecisionRequirementsDefinitionQuery.class); when(query.list()).thenReturn(mockedDefinitions); when(query.count()).thenReturn((long) mockedDefinitions.size()); when(processEngine.getRepositoryService().createDecisionRequirementsDefinitionQuery()).thenReturn(query); return query; }
protected void setUpRuntimeData(DecisionRequirementsDefinition mockDecisionRequirementsDefinition) throws FileNotFoundException, URISyntaxException { repositoryServiceMock = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(repositoryServiceMock); when(repositoryServiceMock.getDecisionRequirementsDefinition(eq(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID))).thenReturn(mockDecisionRequirementsDefinition); when(repositoryServiceMock.getDecisionRequirementsModel(eq(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID))).thenReturn(createMockDecisionRequirementsDefinitionDmnXml()); when(repositoryServiceMock.getDecisionRequirementsDiagram(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID)).thenReturn(createMockDecisionRequirementsDiagram()); decisionRequirementsDefinitionQueryMock = mock(DecisionRequirementsDefinitionQuery.class); when(decisionRequirementsDefinitionQueryMock.decisionRequirementsDefinitionKey(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_KEY)).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.tenantIdIn(anyString())).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.withoutTenantId()).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.latestVersion()).thenReturn(decisionRequirementsDefinitionQueryMock); when(decisionRequirementsDefinitionQueryMock.singleResult()).thenReturn(mockDecisionRequirementsDefinition); when(decisionRequirementsDefinitionQueryMock.list()).thenReturn(Collections.singletonList(mockDecisionRequirementsDefinition)); when(repositoryServiceMock.createDecisionRequirementsDefinitionQuery()).thenReturn(decisionRequirementsDefinitionQueryMock); }
protected void removeAllDecisionRequirementsDefinitionsByDeploymentId(String deploymentId) { // remove all decision requirements definitions for a specific deployment List<DecisionRequirementsDefinition> allDefinitionsForDeployment = new DecisionRequirementsDefinitionQueryImpl() .deploymentId(deploymentId) .list(); for (DecisionRequirementsDefinition decisionRequirementsDefinition : allDefinitionsForDeployment) { try { removeDecisionDefinition(decisionRequirementsDefinition.getId()); } catch (Exception e) { ProcessEngineLogger.PERSISTENCE_LOGGER .removeEntryFromDeploymentCacheFailure("decision requirement", decisionRequirementsDefinition.getId(), e); } } }
protected void removeAllDecisionRequirementsDefinitionsByDeploymentId(String deploymentId) { // remove all decision requirements definitions for a specific deployment List<DecisionRequirementsDefinition> allDefinitionsForDeployment = new DecisionRequirementsDefinitionQueryImpl() .deploymentId(deploymentId) .list(); for (DecisionRequirementsDefinition decisionRequirementsDefinition : allDefinitionsForDeployment) { try { removeDecisionDefinition(decisionRequirementsDefinition.getId()); } catch (Exception e) { ProcessEngineLogger.PERSISTENCE_LOGGER .removeEntryFromDeploymentCacheFailure("decision requirement", decisionRequirementsDefinition.getId(), e); } } }
@Test public void querySortingDesc() { // exclude definitions without tenant id because of database-specific ordering List<DecisionRequirementsDefinition> DecisionRequirementsDefinitions = repositoryService .createDecisionRequirementsDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .desc() .list(); assertThat(DecisionRequirementsDefinitions.size(), is(2)); assertThat(DecisionRequirementsDefinitions.get(0).getTenantId(), is(TENANT_TWO)); assertThat(DecisionRequirementsDefinitions.get(1).getTenantId(), is(TENANT_ONE)); }
@Test public void querySortingAsc() { // exclude definitions without tenant id because of database-specific ordering List<DecisionRequirementsDefinition> DecisionRequirementsDefinitions = repositoryService .createDecisionRequirementsDefinitionQuery() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc() .list(); assertThat(DecisionRequirementsDefinitions.size(), is(2)); assertThat(DecisionRequirementsDefinitions.get(0).getTenantId(), is(TENANT_ONE)); assertThat(DecisionRequirementsDefinitions.get(1).getTenantId(), is(TENANT_TWO)); }
@Test public void orderByDecisionRequirementsDefinitionCategory() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionCategory().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getCategory(), is("test-drd-1")); assertThat(decisionRequirementsDefinitions.get(1).getCategory(), is("test-drd-2")); assertThat(decisionRequirementsDefinitions.get(2).getCategory(), is("test-drd-2")); assertThat(decisionRequirementsDefinitions.get(3).getCategory(), is("xyz_")); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionCategory().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getCategory(), is("xyz_")); assertThat(decisionRequirementsDefinitions.get(1).getCategory(), is("test-drd-2")); assertThat(decisionRequirementsDefinitions.get(2).getCategory(), is("test-drd-2")); assertThat(decisionRequirementsDefinitions.get(3).getCategory(), is("test-drd-1")); }
@Test public void orderByDeploymentId() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDeploymentId().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getDeploymentId(), is(firstDeploymentId)); assertThat(decisionRequirementsDefinitions.get(1).getDeploymentId(), is(firstDeploymentId)); assertThat(decisionRequirementsDefinitions.get(2).getDeploymentId(), is(secondDeploymentId)); assertThat(decisionRequirementsDefinitions.get(3).getDeploymentId(), is(thirdDeploymentId)); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDeploymentId().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getDeploymentId(), is(thirdDeploymentId)); assertThat(decisionRequirementsDefinitions.get(1).getDeploymentId(), is(secondDeploymentId)); assertThat(decisionRequirementsDefinitions.get(2).getDeploymentId(), is(firstDeploymentId)); assertThat(decisionRequirementsDefinitions.get(3).getDeploymentId(), is(firstDeploymentId)); }
@Test public void orderByDecisionRequirementsDefinitionVersion() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(3).getVersion(), is(2)); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionVersion().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getVersion(), is(2)); assertThat(decisionRequirementsDefinitions.get(1).getVersion(), is(1)); assertThat(decisionRequirementsDefinitions.get(2).getVersion(), is(1)); }
@Test public void orderByDecisionRequirementsDefinitionKey() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionKey().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getKey(), is("dish")); assertThat(decisionRequirementsDefinitions.get(1).getKey(), is("dish")); assertThat(decisionRequirementsDefinitions.get(2).getKey(), is("score")); assertThat(decisionRequirementsDefinitions.get(3).getKey(), is("xyz")); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionKey().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getKey(), is("xyz")); assertThat(decisionRequirementsDefinitions.get(1).getKey(), is("score")); assertThat(decisionRequirementsDefinitions.get(2).getKey(), is("dish")); assertThat(decisionRequirementsDefinitions.get(3).getKey(), is("dish")); }
@Test public void orderByDecisionRequirementsDefinitionName() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionName().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getName(), is("Dish")); assertThat(decisionRequirementsDefinitions.get(1).getName(), is("Dish")); assertThat(decisionRequirementsDefinitions.get(2).getName(), is("Score")); assertThat(decisionRequirementsDefinitions.get(3).getName(), is("Xyz")); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionName().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getName(), is("Xyz")); assertThat(decisionRequirementsDefinitions.get(1).getName(), is("Score")); assertThat(decisionRequirementsDefinitions.get(2).getName(), is("Dish")); assertThat(decisionRequirementsDefinitions.get(3).getName(), is("Dish")); }
@Test public void testDecisionRequirementsDefinitionRetrievalByEmptyList() { given() .queryParam("decisionRequirementsDefinitionIdIn", "") .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(DECISION_REQUIREMENTS_DEFINITION_QUERY_URL); // assert query invocation InOrder inOrder = Mockito.inOrder(mockedQuery); inOrder.verify(mockedQuery, never()).decisionRequirementsDefinitionIdIn(Matchers.<String[]>anyVararg()); inOrder.verify(mockedQuery).list(); }
@Test public void testEmptyQuery() { given() .then() .expect() .statusCode(Status.OK.getStatusCode()) .when() .get(DECISION_REQUIREMENTS_DEFINITION_QUERY_URL); verify(mockedQuery).list(); }
@Test public void queryByLatestNoTenantIdSet() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion(); // one definition for each tenant assertThat(query.count(), is(3L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); assertThat(definitionsForTenant.get(null).getVersion(), is(1)); }
@Test public void orderByDecisionRequirementsDefinitionId() { List<DecisionRequirementsDefinition> decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionId().asc().list(); assertThat(decisionRequirementsDefinitions.size(), is(4)); assertThat(decisionRequirementsDefinitions.get(0).getId(), startsWith("dish:1")); assertThat(decisionRequirementsDefinitions.get(1).getId(), startsWith("dish:2")); assertThat(decisionRequirementsDefinitions.get(2).getId(), startsWith("score:1")); assertThat(decisionRequirementsDefinitions.get(3).getId(), startsWith("xyz:1")); decisionRequirementsDefinitions = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionId().desc().list(); assertThat(decisionRequirementsDefinitions.get(0).getId(), startsWith("xyz:1")); assertThat(decisionRequirementsDefinitions.get(1).getId(), startsWith("score:1")); assertThat(decisionRequirementsDefinitions.get(2).getId(), startsWith("dish:2")); assertThat(decisionRequirementsDefinitions.get(3).getId(), startsWith("dish:1")); }
@Test public void queryByLatestWithTenantIds() { // deploy a second version for tenant one testRule.deployForTenant(TENANT_ONE, DMN); DecisionRequirementsDefinitionQuery query = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionKey(DECISION_REQUIREMENTS_DEFINITION_KEY) .latestVersion() .tenantIdIn(TENANT_ONE, TENANT_TWO) .orderByTenantId() .asc(); // one definition for each tenant assertThat(query.count(), is(2L)); Map<String, DecisionRequirementsDefinition> definitionsForTenant = getDecisionRequirementsDefinitionsForTenant(query.list()); assertThat(definitionsForTenant.get(TENANT_ONE).getVersion(), is(2)); assertThat(definitionsForTenant.get(TENANT_TWO).getVersion(), is(1)); }
@Test public void queryByDecisionRequirementsDefinitionId() { testRule.deploy(DRD_DISH_RESOURCE, DRD_SCORE_RESOURCE); List<DecisionRequirementsDefinition> drds = repositoryService.createDecisionRequirementsDefinitionQuery() .orderByDecisionRequirementsDefinitionName().asc().list(); String dishDrdId = drds.get(0).getId(); String scoreDrdId = drds.get(1).getId(); DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); verifyQueryResults(query.decisionRequirementsDefinitionId("non existing"), 0); verifyQueryResults(query.decisionRequirementsDefinitionId(dishDrdId), 3); verifyQueryResults(query.decisionRequirementsDefinitionId(scoreDrdId), 2); }
@Test public void testDecisionRequirementsDefinitionWithoutTenantId() { Response response = given() .queryParam("withoutTenantId", true) .then().expect() .statusCode(Status.OK.getStatusCode()) .when() .get(DECISION_REQUIREMENTS_DEFINITION_QUERY_URL); verify(mockedQuery).withoutTenantId(); verify(mockedQuery).list(); String content = response.asString(); List<String> definitions = from(content).getList(""); assertThat(definitions).hasSize(1); String returnedTenantId1 = from(content).getString("[0].tenantId"); assertThat(returnedTenantId1).isEqualTo(null); }
@Test @Deployment(resources = { DMN_FILE, ANOTHER_DMN }) public void queryDecisionRequirementsDefinitions() { // when authRule.init(scenario).withUser("userId").bindResource("decisionRequirementsDefinitionKey", DEFINITION_KEY).start(); DecisionRequirementsDefinitionQuery query = engineRule.getRepositoryService().createDecisionRequirementsDefinitionQuery(); long count = query.count(); // then if (authRule.assertScenario(scenario)) { assertThat(count, is((long) expectedDefinitionKeys.length)); List<String> definitionKeys = getDefinitionKeys(query.list()); assertThat(definitionKeys, hasItems(expectedDefinitionKeys)); } }