private void assertThatDecisionsHaveAllImportantInformation(List<HistoricDecisionInstance> decisionInstances) { assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance, notNullValue()); assertThat(decisionInstance.getProcessDefinitionKey(), is("testProcess")); assertThat(decisionInstance.getProcessDefinitionId(), notNullValue()); assertThat(decisionInstance.getDecisionDefinitionId(), notNullValue()); assertThat(decisionInstance.getDecisionDefinitionKey(), is("testDecision")); assertThat(decisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(decisionInstance.getActivityId(), is("task")); assertThat(decisionInstance.getActivityInstanceId(), notNullValue()); assertThat(decisionInstance.getProcessInstanceId(), is(notNullValue())); assertThat(decisionInstance.getRootProcessInstanceId(), is(notNullValue())); assertThat(decisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(decisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(decisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(decisionInstance.getRootDecisionInstanceId(), is(nullValue())); assertThat(decisionInstance.getDecisionRequirementsDefinitionId(), is(nullValue())); assertThat(decisionInstance.getDecisionRequirementsDefinitionKey(), is(nullValue())); assertThat(decisionInstance.getEvaluationTime(), is(notNullValue())); }
public static HistoricDecisionInstance createMockHistoricDecisionInstanceBase(String tenantId) { HistoricDecisionInstance mock = mock(HistoricDecisionInstance.class); when(mock.getId()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_ID); when(mock.getDecisionDefinitionId()).thenReturn(EXAMPLE_DECISION_DEFINITION_ID); when(mock.getDecisionDefinitionKey()).thenReturn(EXAMPLE_DECISION_DEFINITION_KEY); when(mock.getDecisionDefinitionName()).thenReturn(EXAMPLE_DECISION_DEFINITION_NAME); when(mock.getProcessDefinitionId()).thenReturn(EXAMPLE_PROCESS_DEFINITION_ID); when(mock.getProcessDefinitionKey()).thenReturn(EXAMPLE_PROCESS_DEFINITION_KEY); when(mock.getProcessInstanceId()).thenReturn(EXAMPLE_PROCESS_INSTANCE_ID); when(mock.getCaseDefinitionId()).thenReturn(EXAMPLE_CASE_DEFINITION_ID); when(mock.getCaseDefinitionKey()).thenReturn(EXAMPLE_CASE_DEFINITION_KEY); when(mock.getCaseInstanceId()).thenReturn(EXAMPLE_CASE_INSTANCE_ID); when(mock.getActivityId()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_ACTIVITY_ID); when(mock.getActivityInstanceId()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_ACTIVITY_INSTANCE_ID); when(mock.getEvaluationTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_DECISION_INSTANCE_EVALUATION_TIME)); when(mock.getRemovalTime()).thenReturn(DateTimeUtil.parseDate(EXAMPLE_HISTORIC_DECISION_INSTANCE_REMOVAL_TIME)); when(mock.getUserId()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_USER_ID); when(mock.getCollectResultValue()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_COLLECT_RESULT_VALUE); when(mock.getRootDecisionInstanceId()).thenReturn(EXAMPLE_HISTORIC_DECISION_INSTANCE_ID); when(mock.getRootProcessInstanceId()).thenReturn(EXAMPLE_ROOT_HISTORIC_PROCESS_INSTANCE_ID); when(mock.getDecisionRequirementsDefinitionId()).thenReturn(EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_ID); when(mock.getDecisionRequirementsDefinitionKey()).thenReturn(EXAMPLE_DECISION_REQUIREMENTS_DEFINITION_KEY); when(mock.getTenantId()).thenReturn(tenantId); return mock; }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void resultIsSortedByEvaluationTime() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); Date now = new Date(); Date nowMinus2Seconds = new Date(now.getTime() - 2000L); Date nowPlus2Seconds = new Date(now.getTime() + 2000L); ClockUtil.setCurrentTime(nowMinus2Seconds); ProcessInstance firstProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); ClockUtil.setCurrentTime(now); ProcessInstance secondProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); ClockUtil.setCurrentTime(nowPlus2Seconds); ProcessInstance thirdProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(pastDate(), null, 3); // then assertThat(decisionInstances.size(), is(3)); assertThat(decisionInstances.get(0).getProcessInstanceId(), is(firstProcessInstance.getId())); assertThat(decisionInstances.get(1).getProcessInstanceId(), is(secondProcessInstance.getId())); assertThat(decisionInstances.get(2).getProcessInstanceId(), is(thirdProcessInstance.getId())); }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void fishedAfterParameterWorks() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); Date now = new Date(); ClockUtil.setCurrentTime(now); runtimeService.startProcessInstanceByKey("testProcess", variables); Date nowPlus2Seconds = new Date(now.getTime() + 2000L); ClockUtil.setCurrentTime(nowPlus2Seconds); ProcessInstance secondProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(now, null, 10); // then assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance.getProcessInstanceId(), is(secondProcessInstance.getId())); }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void fishedAtParameterWorks() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); Date now = new Date(); ClockUtil.setCurrentTime(now); ProcessInstance firstProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); Date nowPlus2Seconds = new Date(now.getTime() + 2000L); ClockUtil.setCurrentTime(nowPlus2Seconds); runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(null, now, 10); // then assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance.getProcessInstanceId(), is(firstProcessInstance.getId())); }
@Deployment(resources = { DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionEvaluatedWithDecisionService() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("input1", "test"); decisionService.evaluateDecisionTableByKey(DECISION_DEFINITION_KEY, variables); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); // references to process instance should be null since the decision is not evaluated while executing a process instance assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityInstanceId(), is(nullValue())); // the user should be null since no user was authenticated during evaluation assertThat(historicDecisionInstance.getUserId(), is(nullValue())); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionInstanceProperties() { startProcessInstanceAndEvaluateDecision(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); String activityInstanceId = historyService.createHistoricActivityInstanceQuery().activityId("task").singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(processDefinition.getKey())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(processDefinition.getId())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(processInstance.getId())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is("task")); assertThat(historicDecisionInstance.getActivityInstanceId(), is(activityInstanceId)); assertThat(historicDecisionInstance.getRootDecisionInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); }
dto.processDefinitionId = historicDecisionInstance.getProcessDefinitionId(); dto.processDefinitionKey = historicDecisionInstance.getProcessDefinitionKey(); dto.processInstanceId = historicDecisionInstance.getProcessInstanceId(); dto.caseDefinitionId = historicDecisionInstance.getCaseDefinitionId(); dto.caseDefinitionKey = historicDecisionInstance.getCaseDefinitionKey();
dto.processDefinitionId = historicDecisionInstance.getProcessDefinitionId(); dto.processDefinitionKey = historicDecisionInstance.getProcessDefinitionKey(); dto.processInstanceId = historicDecisionInstance.getProcessInstanceId(); dto.caseDefinitionId = historicDecisionInstance.getCaseDefinitionId(); dto.caseDefinitionKey = historicDecisionInstance.getCaseDefinitionKey();
@Test public void evaluateDecisionWithDecisionService() { runtimeService.startProcessInstanceByKey("testProcess", Variables.createVariables() .putValue("input1", null) .putValue("myBean", new DecisionServiceDelegate())); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); // references to process instance should be set since the decision is evaluated while executing a process instance assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(processDefinition.getKey())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(processDefinition.getId())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(processInstance.getId())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is(activityId)); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); }
assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue()));
assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(caseDefinition.getKey())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(caseDefinition.getId()));
assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(caseDefinition.getKey())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(caseDefinition.getId()));
assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(caseDefinition.getKey())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(caseDefinition.getId()));
private void assertThatDecisionsHaveAllImportantInformation(List<HistoricDecisionInstance> decisionInstances) { assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance, notNullValue()); assertThat(decisionInstance.getProcessDefinitionKey(), is("testProcess")); assertThat(decisionInstance.getProcessDefinitionId(), notNullValue()); assertThat(decisionInstance.getDecisionDefinitionId(), notNullValue()); assertThat(decisionInstance.getDecisionDefinitionKey(), is("testDecision")); assertThat(decisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(decisionInstance.getActivityId(), is("task")); assertThat(decisionInstance.getActivityInstanceId(), notNullValue()); assertThat(decisionInstance.getProcessInstanceId(), is(notNullValue())); assertThat(decisionInstance.getRootProcessInstanceId(), is(notNullValue())); assertThat(decisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(decisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(decisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(decisionInstance.getRootDecisionInstanceId(), is(nullValue())); assertThat(decisionInstance.getDecisionRequirementsDefinitionId(), is(nullValue())); assertThat(decisionInstance.getDecisionRequirementsDefinitionKey(), is(nullValue())); assertThat(decisionInstance.getEvaluationTime(), is(notNullValue())); }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void fishedAtParameterWorks() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); Date now = new Date(); ClockUtil.setCurrentTime(now); ProcessInstance firstProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); Date nowPlus2Seconds = new Date(now.getTime() + 2000L); ClockUtil.setCurrentTime(nowPlus2Seconds); runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(null, now, 10); // then assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance.getProcessInstanceId(), is(firstProcessInstance.getId())); }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void fishedAfterParameterWorks() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); Date now = new Date(); ClockUtil.setCurrentTime(now); runtimeService.startProcessInstanceByKey("testProcess", variables); Date nowPlus2Seconds = new Date(now.getTime() + 2000L); ClockUtil.setCurrentTime(nowPlus2Seconds); ProcessInstance secondProcessInstance = runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(now, null, 10); // then assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); assertThat(decisionInstance.getProcessInstanceId(), is(secondProcessInstance.getId())); }
@Deployment(resources = { DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionEvaluatedWithDecisionService() { Map<String, Object> variables = new HashMap<String, Object>(); variables.put("input1", "test"); decisionService.evaluateDecisionTableByKey(DECISION_DEFINITION_KEY, variables); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); // references to process instance should be null since the decision is not evaluated while executing a process instance assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityInstanceId(), is(nullValue())); // the user should be null since no user was authenticated during evaluation assertThat(historicDecisionInstance.getUserId(), is(nullValue())); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionInstanceProperties() { startProcessInstanceAndEvaluateDecision(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); String activityInstanceId = historyService.createHistoricActivityInstanceQuery().activityId("task").singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(processDefinition.getKey())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(processDefinition.getId())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(processInstance.getId())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is("task")); assertThat(historicDecisionInstance.getActivityInstanceId(), is(activityInstanceId)); assertThat(historicDecisionInstance.getRootDecisionInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getDecisionRequirementsDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); }
@Test public void evaluateDecisionWithDecisionService() { runtimeService.startProcessInstanceByKey("testProcess", Variables.createVariables() .putValue("input1", null) .putValue("myBean", new DecisionServiceDelegate())); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().singleResult(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processInstance.getProcessDefinitionId()).singleResult(); String decisionDefinitionId = repositoryService.createDecisionDefinitionQuery().decisionDefinitionKey(DECISION_DEFINITION_KEY).singleResult().getId(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().singleResult(); assertThat(historicDecisionInstance, is(notNullValue())); assertThat(historicDecisionInstance.getDecisionDefinitionId(), is(decisionDefinitionId)); assertThat(historicDecisionInstance.getDecisionDefinitionKey(), is(DECISION_DEFINITION_KEY)); assertThat(historicDecisionInstance.getDecisionDefinitionName(), is("sample decision")); // references to process instance should be set since the decision is evaluated while executing a process instance assertThat(historicDecisionInstance.getProcessDefinitionKey(), is(processDefinition.getKey())); assertThat(historicDecisionInstance.getProcessDefinitionId(), is(processDefinition.getId())); assertThat(historicDecisionInstance.getProcessInstanceId(), is(processInstance.getId())); assertThat(historicDecisionInstance.getCaseDefinitionKey(), is(nullValue())); assertThat(historicDecisionInstance.getCaseDefinitionId(), is(nullValue())); assertThat(historicDecisionInstance.getCaseInstanceId(), is(nullValue())); assertThat(historicDecisionInstance.getActivityId(), is(activityId)); assertThat(historicDecisionInstance.getEvaluationTime(), is(notNullValue())); }