@Override public NodeInstanceSummary apply(NodeInstance nodeInstance) { if (nodeInstance == null) { return null; } return new NodeInstanceSummary(nodeInstance.getId(), nodeInstance.getProcessInstanceId(), nodeInstance.getName(), nodeInstance.getNodeId(), nodeInstance.getNodeType(), nodeInstance.getDate(), nodeInstance.getConnection(), nodeInstance.getCompleted(), nodeInstance.getReferenceId(), nodeInstance.getSlaCompliance(), nodeInstance.getSlaDueDate()); } }
private void assertNodeInstance(NodeInstance expected, NodeInstance actual) { assertNotNull(actual); assertEquals(expected.getName(), actual.getName()); assertEquals(expected.getContainerId(), actual.getContainerId()); assertEquals(expected.getNodeType(), actual.getNodeType()); assertEquals(expected.getCompleted(), actual.getCompleted()); assertEquals(expected.getProcessInstanceId(), actual.getProcessInstanceId()); }
@Override public CaseActionSummary apply(NodeInstance nodeInstance) { if (nodeInstance == null) { return null; } return CaseActionSummary.builder() .id(nodeInstance.getId()) .name(nodeInstance.getName()) .type(nodeInstance.getNodeType()) .createdOn(nodeInstance.getDate()) .actualOwner(actualOwner) .actionStatus(actionStatus) .build(); } }
@Test public void getCompletedActionsTest_withoutUserTasks() { final NodeInstance nodeInstance = createTestNodeInstance("completedNode", "Service Task", 1L); when(clientMock.getCompletedNodes(containerId, caseId, 0, PAGE_SIZE_UNLIMITED)).thenReturn(singletonList(nodeInstance)); final List<CaseActionSummary> result = testedService.getCompletedActions(containerId, caseId); verifyZeroInteractions(userTaskServicesClient); SoftAssertions.assertSoftly(softly -> { softly.assertThat(result.get(0).getName()).isEqualTo(nodeInstance.getName()); softly.assertThat(result.get(0).getType()).isEqualTo(nodeInstance.getNodeType()); softly.assertThat(result.get(0).getActualOwner()).isEmpty(); softly.assertThat(result.get(0).getActionStatus()).isEqualTo(CaseActionStatus.COMPLETED); }); }
@Test public void getCompletedActionsTest_withUserTasks() { final NodeInstance nodeInstance = createTestNodeInstance("completedNode", NODE_TYPE_HUMAN_TASK, 1L); final TaskInstance taskInstance = TaskInstance.builder().actualOwner("owner").build(); when(clientMock.getCompletedNodes(containerId, caseId, 0, PAGE_SIZE_UNLIMITED)).thenReturn(singletonList(nodeInstance)); when(userTaskServicesClient.findTaskByWorkItemId(nodeInstance.getWorkItemId())).thenReturn(taskInstance); final List<CaseActionSummary> result = testedService.getCompletedActions(containerId, caseId); SoftAssertions.assertSoftly(softly -> { softly.assertThat(result.get(0).getName()).isEqualTo(nodeInstance.getName()); softly.assertThat(result.get(0).getType()).isEqualTo(nodeInstance.getNodeType()); softly.assertThat(result.get(0).getActualOwner()).isEqualTo(taskInstance.getActualOwner()); softly.assertThat(result.get(0).getActionStatus()).isEqualTo(CaseActionStatus.COMPLETED); }); }
.builder() .name("First task") .containerId(CONTAINER_ID) assertNotNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); nodeInstance = queryClient.findNodeInstanceByWorkItemId(processInstanceId, nodeInstance.getWorkItemId()); assertNodeInstance(expectedFirstTask, nodeInstance); assertNotNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); .builder() .name("start") .containerId(CONTAINER_ID) assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); assertNotNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); expectedStart.setCompleted(false); assertNodeInstance(expectedStart, nodeInstance); assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate());
private NodeInstance createTestNodeInstance(String name, String nodeType, Long workItemId) { NodeInstance nodeInstance = NodeInstance.builder() .name(name) .nodeType(nodeType) .workItemId(workItemId) .date(new Date()) .build(); return nodeInstance; }
public List<CaseActionSummary> getCompletedActions(String containerId, String caseId) { List<NodeInstance> activeNodes = getCaseCompletedNodes(containerId, caseId); return activeNodes.stream() .map(s -> new CaseActionNodeInstanceMapper( (new HumanTaskNodePredicate().test(s.getNodeType()) ? userTaskServicesClient.findTaskByWorkItemId(s.getWorkItemId()).getActualOwner() : ""), CaseActionStatus.COMPLETED).apply(s)) .collect(toList()); }
private void assertNodeInstance(NodeInstance ni, String nodeName, int slaStatus) { assertThat(ni.getName()).isEqualTo(nodeName); assertThat(ni.getSlaCompliance()).isEqualTo(slaStatus); if (slaStatus != SLA_NA) { assertThat(ni.getSlaDueDate()).isCloseTo(new Date(), 30000); } }
assertEquals("Call Evaluation", active.getName()); assertEquals("SubProcessNode", active.getNodeType()); assertEquals(childInstance.getId(), active.getReferenceId());
@Test public void testRetrigger() throws Exception { Map<String, Object> parameters = new HashMap<String, Object>(); Long processInstanceId = null; try { processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_EVALUATION, parameters); assertNotNull(processInstanceId); assertTrue(processInstanceId.longValue() > 0); List<NodeInstance> activeNodeInstances = processAdminClient.getActiveNodeInstances(CONTAINER_ID, processInstanceId); assertNotNull(activeNodeInstances); assertEquals(1, activeNodeInstances.size()); NodeInstance active = activeNodeInstances.get(0); assertEquals("Evaluate items?", active.getName()); processAdminClient.retriggerNodeInstance(CONTAINER_ID, processInstanceId, active.getId()); activeNodeInstances = processAdminClient.getActiveNodeInstances(CONTAINER_ID, processInstanceId); assertNotNull(activeNodeInstances); assertEquals(1, activeNodeInstances.size()); NodeInstance activeTriggered = activeNodeInstances.get(0); assertEquals("Evaluate items?", activeTriggered.getName()); assertFalse(activeTriggered.getId().longValue() == active.getId().longValue()); } finally { if (processInstanceId != null) { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); } } }
private NodeInstance getNodeInstanceById(List<NodeInstance> nodes, Long nodeInstanceId) { List<NodeInstance> foundNode = nodes.stream().filter(ni -> ni.getId().equals(nodeInstanceId)).collect(Collectors.toList()); assertThat(foundNode).hasSize(1); return foundNode.get(0); } }
assertEquals("Hello1", activeNode.getName()); assertEquals(2, activeNodes.size()); List<String> nodeNames = activeNodes.stream().map(n -> n.getName()).collect(toList()); assertTrue(nodeNames.contains("[Dynamic] dynamic task")); assertTrue(nodeNames.contains("Hello1")); assertEquals("[Dynamic] dynamic task", completedNode.getName());
@Override public CaseActionSummary apply(NodeInstance nodeInstance) { if (nodeInstance == null) { return null; } return CaseActionSummary.builder() .id(nodeInstance.getId()) .name(nodeInstance.getName()) .type(nodeInstance.getNodeType()) .createdOn(nodeInstance.getDate()) .actualOwner(actualOwner) .actionStatus(actionStatus) .build(); } }
private void assertNodeInstance(NodeInstance expected, NodeInstance actual) { assertNotNull(actual); assertEquals(expected.getName(), actual.getName()); assertEquals(expected.getContainerId(), actual.getContainerId()); assertEquals(expected.getNodeType(), actual.getNodeType()); assertEquals(expected.getCompleted(), actual.getCompleted()); assertEquals(expected.getProcessInstanceId(), actual.getProcessInstanceId()); }
@Test public void getCompletedActionsTest_withoutUserTasks() { final NodeInstance nodeInstance = createTestNodeInstance("completedNode", "Service Task", 1L); when(clientMock.getCompletedNodes(containerId, caseId, 0, PAGE_SIZE_UNLIMITED)).thenReturn(singletonList(nodeInstance)); final List<CaseActionSummary> result = testedService.getCompletedActions(containerId, caseId); verifyZeroInteractions(userTaskServicesClient); SoftAssertions.assertSoftly(softly -> { softly.assertThat(result.get(0).getName()).isEqualTo(nodeInstance.getName()); softly.assertThat(result.get(0).getType()).isEqualTo(nodeInstance.getNodeType()); softly.assertThat(result.get(0).getActualOwner()).isEmpty(); softly.assertThat(result.get(0).getActionStatus()).isEqualTo(CaseActionStatus.COMPLETED); }); }
@Test public void getCompletedActionsTest_withUserTasks() { final NodeInstance nodeInstance = createTestNodeInstance("completedNode", NODE_TYPE_HUMAN_TASK, 1L); final TaskInstance taskInstance = TaskInstance.builder().actualOwner("owner").build(); when(clientMock.getCompletedNodes(containerId, caseId, 0, PAGE_SIZE_UNLIMITED)).thenReturn(singletonList(nodeInstance)); when(userTaskServicesClient.findTaskByWorkItemId(nodeInstance.getWorkItemId())).thenReturn(taskInstance); final List<CaseActionSummary> result = testedService.getCompletedActions(containerId, caseId); SoftAssertions.assertSoftly(softly -> { softly.assertThat(result.get(0).getName()).isEqualTo(nodeInstance.getName()); softly.assertThat(result.get(0).getType()).isEqualTo(nodeInstance.getNodeType()); softly.assertThat(result.get(0).getActualOwner()).isEqualTo(taskInstance.getActualOwner()); softly.assertThat(result.get(0).getActionStatus()).isEqualTo(CaseActionStatus.COMPLETED); }); }
.builder() .name("First task") .containerId(CONTAINER_ID) assertNotNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); .builder() .name("start") .containerId(CONTAINER_ID) assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); assertNotNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); expectedStart.setCompleted(false); assertNodeInstance(expectedStart, nodeInstance); assertNull(nodeInstance.getWorkItemId()); assertNotNull(nodeInstance.getDate()); } finally { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId);
private NodeInstance createTestNodeInstance(String name, String nodeType, Long workItemId) { NodeInstance nodeInstance = NodeInstance.builder() .name(name) .nodeType(nodeType) .workItemId(workItemId) .date(new Date()) .build(); return nodeInstance; }
public List<CaseActionSummary> getCompletedActions(String containerId, String caseId) { List<NodeInstance> activeNodes = getCaseCompletedNodes(containerId, caseId); return activeNodes.stream() .map(s -> new CaseActionNodeInstanceMapper( (new HumanTaskNodePredicate().test(s.getNodeType()) ? userTaskServicesClient.findTaskByWorkItemId(s.getWorkItemId()).getActualOwner() : ""), CaseActionStatus.COMPLETED).apply(s)) .collect(toList()); }