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); } }
private void verifyCurrentActivities(Long processInstanceId) { final NodeInstance nodeInstanceMock = mock(NodeInstance.class); final List<NodeInstance> nodeInstanceList = singletonList(nodeInstanceMock); when(queryServicesClient.findActiveNodeInstances(processInstanceId, 0, Integer.MAX_VALUE)).thenReturn(nodeInstanceList); when(nodeInstanceMock.getDate()).thenReturn(new Date()); ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); service.getProcessInstanceActiveNodes(instanceKey); verify(queryServicesClient).findActiveNodeInstances(processInstanceId, 0, Integer.MAX_VALUE); verify(nodeInstanceMock).getDate(); verify(nodeInstanceMock).getId(); verify(nodeInstanceMock).getName(); verify(nodeInstanceMock).getNodeType(); }
private void verifyCurrentActivities(Long processInstanceId) { final NodeInstance nodeInstanceMock = mock(NodeInstance.class); final List<NodeInstance> nodeInstanceList = singletonList(nodeInstanceMock); when(queryServicesClient.findActiveNodeInstances(processInstanceId, 0, Integer.MAX_VALUE)).thenReturn(nodeInstanceList); when(nodeInstanceMock.getDate()).thenReturn(new Date()); ProcessInstanceKey instanceKey = new ProcessInstanceKey(serverTemplateId, containerId, processInstanceId); service.getProcessInstanceActiveNodes(instanceKey); verify(queryServicesClient).findActiveNodeInstances(processInstanceId, 0, Integer.MAX_VALUE); verify(nodeInstanceMock).getDate(); verify(nodeInstanceMock).getId(); verify(nodeInstanceMock).getName(); verify(nodeInstanceMock).getNodeType(); }
@Test public void testSLAonUserTaskMet() throws Exception { Long pid = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK_WITH_SLA_ON_TASK, new HashMap<>()); assertProcessInstance(pid, STATE_ACTIVE, SLA_NA); // Yoda should have one task available with SLA List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 0); TaskSummary task = tasks.get(0); assertThat(tasks).hasSize(1); assertThat(task.getName()).isEqualTo("Hello"); List<NodeInstance> activeNodes = processClient.findActiveNodeInstances(CONTAINER_ID, pid, 0, 0); assertThat(activeNodes).hasSize(1); NodeInstance taskNode = activeNodes.get(0); assertNodeInstance(taskNode, "Hello", SLA_PENDING); taskClient.completeAutoProgress(CONTAINER_ID, task.getId(), USER_YODA, null); tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 0); assertThat(tasks).isEmpty(); activeNodes = processClient.findActiveNodeInstances(CONTAINER_ID, pid, 0, 0); assertThat(activeNodes).isEmpty(); taskNode = getNodeInstanceById(queryClient.findCompletedNodeInstances(pid, 0, 0), taskNode.getId()); assertNodeInstance(taskNode, "Hello", SLA_MET); assertProcessInstance(pid, STATE_COMPLETED, SLA_NA); }
@Test public void testSLAonProcessMet() throws Exception { Long pid = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK_WITH_SLA, new HashMap<>()); assertProcessInstance(pid, STATE_ACTIVE, SLA_PENDING); // Yoda should have one task available without SLA List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 0); assertThat(tasks).hasSize(1); TaskSummary task = tasks.get(0); assertThat(task.getName()).isEqualTo("Hello"); List<NodeInstance> activeNodes = processClient.findActiveNodeInstances(CONTAINER_ID, pid, 0, 0); assertThat(activeNodes).hasSize(1); NodeInstance taskNode = activeNodes.get(0); assertNodeInstance(taskNode, "Hello", SLA_NA); // Complete task before SLA violation taskClient.completeAutoProgress(CONTAINER_ID, task.getId(), USER_YODA, null); tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 0); assertThat(tasks).isEmpty(); activeNodes = processClient.findActiveNodeInstances(CONTAINER_ID, pid, 0, 0); assertThat(activeNodes).isEmpty(); taskNode = getNodeInstanceById(queryClient.findCompletedNodeInstances(pid, 0, 0), taskNode.getId()); assertNodeInstance(taskNode, "Hello", SLA_NA); // Process should be completed and SLA should be met assertProcessInstance(pid, STATE_COMPLETED, SLA_MET); }
@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); } } }
@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(); } }
@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(); } }
@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()); } }
@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()); } }
public static void assertCaseActionNodeInstance(final NodeInstance nodeInstance, final CaseActionSummary caseActionSummary) { assertNotNull(caseActionSummary); assertNotNull(nodeInstance); assertEquals(nodeInstance.getId(), caseActionSummary.getId()); assertEquals(nodeInstance.getName(), caseActionSummary.getName()); assertEquals(nodeInstance.getNodeType(), caseActionSummary.getType()); assertEquals(nodeInstance.getDate(), caseActionSummary.getCreatedOn()); assertNotNull(caseActionSummary.getActionStatus()); }
public static void assertCaseActionNodeInstance(final NodeInstance nodeInstance, final CaseActionSummary caseActionSummary) { assertNotNull(caseActionSummary); assertNotNull(nodeInstance); assertEquals(nodeInstance.getId(), caseActionSummary.getId()); assertEquals(nodeInstance.getName(), caseActionSummary.getName()); assertEquals(nodeInstance.getNodeType(), caseActionSummary.getType()); assertEquals(nodeInstance.getDate(), caseActionSummary.getCreatedOn()); assertNotNull(caseActionSummary.getActionStatus()); }
public static void assertNodeInstanceSummary(final NodeInstance ni, final NodeInstanceSummary ns) { assertNotNull(ns); assertEquals(ni.getId(), ns.getId()); assertEquals(ni.getName(), ns.getName()); assertEquals(ni.getProcessInstanceId(), ns.getProcessId()); assertEquals(ni.getDate(), ns.getTimestamp()); assertEquals(ni.getNodeId(), ns.getNodeUniqueName()); assertEquals(ni.getNodeType(), ns.getType()); assertEquals(ni.getConnection(), ns.getConnection()); assertEquals(ni.getCompleted(), ns.isCompleted()); assertEquals(ni.getReferenceId(), ns.getReferenceId()); assertEquals(ni.getSlaCompliance(), ns.getSlaCompliance()); assertEquals(ni.getSlaDueDate(), ns.getSlaDueDate()); }
public static void assertNodeInstanceSummary(final NodeInstance ni, final NodeInstanceSummary ns) { assertNotNull(ns); assertEquals(ni.getId(), ns.getId()); assertEquals(ni.getName(), ns.getName()); assertEquals(ni.getProcessInstanceId(), ns.getProcessId()); assertEquals(ni.getDate(), ns.getTimestamp()); assertEquals(ni.getNodeId(), ns.getNodeUniqueName()); assertEquals(ni.getNodeType(), ns.getType()); assertEquals(ni.getConnection(), ns.getConnection()); assertEquals(ni.getCompleted(), ns.isCompleted()); assertEquals(ni.getReferenceId(), ns.getReferenceId()); assertEquals(ni.getSlaCompliance(), ns.getSlaCompliance()); assertEquals(ni.getSlaDueDate(), ns.getSlaDueDate()); }