@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; }
@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; }
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 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 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 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 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 testStatisticConstrainedToOneDRD() throws Exception { //given testRule.deploy(SCORE_DRG_DMN); //when decisionService.evaluateDecisionTableByKey("score-decision") .variables(Variables.createVariables().putValue("input", "john")) .evaluate(); decisionService.evaluateDecisionTableByKey("season") .variables(Variables.createVariables().putValue(TEMPERATURE, 21)) .evaluate(); DecisionRequirementsDefinition decisionRequirementsDefinition = repositoryService .createDecisionRequirementsDefinitionQuery() .decisionRequirementsDefinitionName("Score") .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 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())); }
@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)); }
@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 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 } }
@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 testStatisticThrowsExceptionOnNullConstraintsList() throws Exception { //expect thrown.expect(NullValueException.class); historyService.createHistoricDecisionInstanceStatisticsQuery(null).list(); }
@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 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 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 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)); }
@Test public void testCreateStatistics() { //given authRule .init(scenario) .withUser("userId") .bindResource("drd", "*") .start(); // when historyService.createHistoricDecisionInstanceStatisticsQuery( decisionRequirementsDefinition.getId()).list(); // then authRule.assertScenario(scenario); }