@Test public void testStatisticForRootDecisionWithFakeInstanceConstraintEvaluation() throws Exception { //when decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 21).putValue(DAY_TYPE, WEEKEND)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); HistoricDecisionInstanceStatisticsQuery query = historyService .createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()) .decisionInstanceId(NON_EXISTING); //then assertThat(query.count(), is(0L)); assertThat(query.list().size(), is(0)); }
@Override public List<HistoricDecisionInstanceStatisticsDto> getDecisionStatistics(String decisionRequirementsDefinitionId, String decisionInstanceId) { List<HistoricDecisionInstanceStatisticsDto> result = new ArrayList<HistoricDecisionInstanceStatisticsDto>(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = processEngine.getHistoryService() .createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinitionId); if (decisionInstanceId != null) { statisticsQuery.decisionInstanceId(decisionInstanceId); } for (HistoricDecisionInstanceStatistics stats : statisticsQuery.list()) { result.add(HistoricDecisionInstanceStatisticsDto.fromDecisionDefinitionStatistics(stats)); } return result; }
@Test public void testStatisticDoesNotExistForFakeId() throws Exception { assertThat( "available statistics count of fake", historyService.createHistoricDecisionInstanceStatisticsQuery( NON_EXISTING).count(), is(0L)); assertThat( "available statistics elements of fake", historyService.createHistoricDecisionInstanceStatisticsQuery( NON_EXISTING).list().size(), is(0)); }
@Test public void testStatisticThrowsExceptionOnNullConstraintsList() throws Exception { //expect thrown.expect(NullValueException.class); historyService.createHistoricDecisionInstanceStatisticsQuery(null).list(); }
@Test public void testHistoricDefinitionInstanceStatisticsRetrievalWithDefinitionInstance() { given().pathParam("id", MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID) .queryParam("decisionInstanceId", MockProvider.EXAMPLE_DECISION_INSTANCE_ID) .then().expect() .statusCode(Response.Status.OK.getStatusCode()) .body("$.size()", is(2)) .body("decisionDefinitionKey", hasItems(MockProvider.EXAMPLE_DECISION_DEFINITION_KEY, MockProvider.ANOTHER_DECISION_DEFINITION_KEY)) .body("evaluations", hasItems(1, 2)) .when().get(HISTORIC_DECISION_STATISTICS_URL); verify(processEngine.getHistoryService()).createHistoricDecisionInstanceStatisticsQuery(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID); verify(historicDecisionInstanceStatisticsQuery).decisionInstanceId(MockProvider.EXAMPLE_DECISION_INSTANCE_ID); } }
@Test public void testStatisticThrowsExceptionOnNullConstraintsCount() throws Exception { //expect thrown.expect(NullValueException.class); historyService.createHistoricDecisionInstanceStatisticsQuery(null).count(); }
@Override public List<HistoricDecisionInstanceStatisticsDto> getDecisionStatistics(String decisionRequirementsDefinitionId, String decisionInstanceId) { List<HistoricDecisionInstanceStatisticsDto> result = new ArrayList<HistoricDecisionInstanceStatisticsDto>(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = processEngine.getHistoryService() .createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinitionId); if (decisionInstanceId != null) { statisticsQuery.decisionInstanceId(decisionInstanceId); } for (HistoricDecisionInstanceStatistics stats : statisticsQuery.list()) { result.add(HistoricDecisionInstanceStatisticsDto.fromDecisionDefinitionStatistics(stats)); } return result; }
@Test public void testStatisticForNotEvaluatedDRD() throws Exception { //when DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = historyService.createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()); //then assertThat("available statistics count", statisticsQuery.count(), is(0L)); assertThat("available statistics elements", statisticsQuery.list().size(), is(0)); } }
@Test public void testCreateStatistics() { //given authRule .init(scenario) .withUser("userId") .bindResource("drd", "*") .start(); // when historyService.createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()).list(); // then authRule.assertScenario(scenario); }
@Test public void testQueryAuthenticatedTenant() { DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery() .singleResult(); identityService.setAuthentication(USER_ID, null, Arrays.asList(TENANT_ONE)); HistoricDecisionInstanceStatisticsQuery query = historyService. createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinition.getId()); assertThat(query.count(), is(3L)); }
@Test public void testStatisticForRootDecisionWithNullInstanceConstraintEvaluation() throws Exception { //when decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 21).putValue(DAY_TYPE, WEEKEND)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); //when HistoricDecisionInstanceStatisticsQuery query = historyService .createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()) .decisionInstanceId(null); //then try { query.count(); } catch (NullValueException e) { //expected } try { query.list(); } catch (NullValueException e) { //expected } }
private void setupHistoricDecisionStatisticsMock() { List<HistoricDecisionInstanceStatistics> mocks = MockProvider.createMockHistoricDecisionStatistics(); historicDecisionInstanceStatisticsQuery = mock(HistoricDecisionInstanceStatisticsQuery.class); when(processEngine.getHistoryService() .createHistoricDecisionInstanceStatisticsQuery(eq(MockProvider.EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID))) .thenReturn(historicDecisionInstanceStatisticsQuery); when(historicDecisionInstanceStatisticsQuery.decisionInstanceId(MockProvider.EXAMPLE_DECISION_INSTANCE_ID)).thenReturn(historicDecisionInstanceStatisticsQuery); when(historicDecisionInstanceStatisticsQuery.list()).thenReturn(mocks); }
@Test public void testStatisticForChildDecisionEvaluation() throws Exception { //when decisionService.evaluateDecisionTableByKey("season") .variables(Variables.createVariables().putValue(TEMPERATURE, 21)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = historyService .createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()); //then assertThat(statisticsQuery.count(), is(1L)); assertThat(statisticsQuery.list().size(), is(1)); assertThat(statisticsQuery.list().get(0).getEvaluations(), is(1)); assertThat(statisticsQuery.list().get(0).getDecisionDefinitionKey(), is(notNullValue())); }
@Test public void testStatisticThrowsExceptionOnNullConstraintsList() throws Exception { //expect thrown.expect(NullValueException.class); historyService.createHistoricDecisionInstanceStatisticsQuery(null).list(); }
@Test public void testQueryAuthenticatedTenant() { DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery() .tenantIdIn(TENANT_ONE) .singleResult(); identityService.setAuthentication(USER_ID, null, Arrays.asList(TENANT_ONE)); HistoricDecisionInstanceStatisticsQuery query = historyService. createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinition.getId()); assertThat(query.count(), is(3L)); }
@Test public void testStatisticForRootDecisionWithInstanceConstraintEvaluation() throws Exception { //when decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 21).putValue(DAY_TYPE, WEEKEND)) .evaluate(); decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 11).putValue(DAY_TYPE, WEEKEND)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); String decisionInstanceId = engineRule.getHistoryService() .createHistoricDecisionInstanceQuery() .decisionRequirementsDefinitionId(decisionRequirementsDefinition.getId()) .rootDecisionInstancesOnly() .list() .get(0) .getId(); HistoricDecisionInstanceStatisticsQuery query = historyService .createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()) .decisionInstanceId(decisionInstanceId); //then assertThat(query.count(), is(3L)); assertThat(query.list().size(), is(3)); assertThat(query.list().get(0).getEvaluations(), is(1)); assertThat(query.list().get(0).getDecisionDefinitionKey(), is(notNullValue())); }
@Override public List<HistoricDecisionInstanceStatisticsDto> getDecisionStatistics(String decisionRequirementsDefinitionId, String decisionInstanceId) { List<HistoricDecisionInstanceStatisticsDto> result = new ArrayList<HistoricDecisionInstanceStatisticsDto>(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = processEngine.getHistoryService() .createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinitionId); if (decisionInstanceId != null) { statisticsQuery.decisionInstanceId(decisionInstanceId); } for (HistoricDecisionInstanceStatistics stats : statisticsQuery.list()) { result.add(HistoricDecisionInstanceStatisticsDto.fromDecisionDefinitionStatistics(stats)); } return result; }
@Test public void testStatisticForRootDecisionEvaluation() throws Exception { //when decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 21).putValue(DAY_TYPE, WEEKEND)) .evaluate(); decisionService.evaluateDecisionTableByKey(DISH_DECISION) .variables(Variables.createVariables().putValue(TEMPERATURE, 11).putValue(DAY_TYPE, WEEKEND)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery().singleResult(); HistoricDecisionInstanceStatisticsQuery statisticsQuery = historyService .createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()); //then assertThat(statisticsQuery.count(), is(3L)); assertThat(statisticsQuery.list().size(), is(3)); assertThat(statisticsQuery.list().get(0).getEvaluations(), is(2)); assertThat(statisticsQuery.list().get(0).getDecisionDefinitionKey(), is(notNullValue())); }
@Test public void testCreateStatistics() { //given authRule .init(scenario) .withUser("userId") .bindResource("drd", "*") .start(); // when historyService.createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()).list(); // then authRule.assertScenario(scenario); }
@Test public void testQueryNoAuthenticatedTenants() { DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService.createDecisionRequirementsDefinitionQuery() .singleResult(); identityService.setAuthentication(USER_ID, null, null); HistoricDecisionInstanceStatisticsQuery query = historyService. createHistoricDecisionInstanceStatisticsQuery(decisionRequirementsDefinition.getId()); assertThat(query.count(), is(0L)); }