@Override public WorkItemSummary apply(final WorkItemInstance workItemInstance) { final Optional<WorkItemInstance> request = ofNullable(workItemInstance); if (request.isPresent() == false) { return null; } WorkItemSummary summary = WorkItemSummary.builder() .id(workItemInstance.getId()) .name(workItemInstance.getName()) .state(workItemInstance.getState()) .parameters(request.map(r -> r.getParameters()) .orElse(emptyMap()) .entrySet() .stream() .map(e -> new WorkItemParameterSummary(e.getKey(), String.valueOf(e.getValue()))) .collect(toList())) .build(); return summary; } }
@Test public void testGetWorkItemByProcessInstance() throws Exception { Long instanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID); List<WorkItemInstance> workItemByProcessInstance = processClient.getWorkItemByProcessInstance(CONTAINER_ID, instanceId); Assert.assertNotNull(workItemByProcessInstance); Assert.assertEquals(1, workItemByProcessInstance.size()); WorkItemInstance workItem = workItemByProcessInstance.get(0); Assert.assertEquals("Email", workItem.getName()); Assert.assertEquals(instanceId, workItem.getProcessInstanceId()); }
public static void assertWorkItemSummary(final WorkItemInstance wii, final WorkItemSummary wis) { assertNotNull(wii); assertNotNull(wis); assertEquals(wii.getId(), wis.getId()); assertEquals(wii.getName(), wis.getName()); if (wii.getParameters() != null) { assertEquals(wii.getParameters().size(), wis.getParameters().size()); wis.getParameters() .stream() .forEach(wisp -> assertEquals(wii.getParameters().get(wisp.getId()).toString(), wisp.getName())); } else { assertNull(wis.getParameters()); } }
assertEquals(processInstanceId, workItemInstance.getProcessInstanceId()); assertEquals("Email", workItemInstance.getName()); assertEquals(CONTAINER_ID, workItemInstance.getContainerId()); assertEquals(0, workItemInstance.getState().intValue()); assertEquals(5, workItemInstance.getParameters().size()); assertNotNull(workItemInstance.getId()); assertNotNull(workItemInstance.getNodeId()); assertNotNull(workItemInstance.getProcessInstanceId()); workItemInstance = processClient.getWorkItem(CONTAINER_ID, processInstanceId, workItemInstance.getId()); assertNotNull(workItemInstance); assertEquals(processInstanceId, workItemInstance.getProcessInstanceId()); assertEquals("Email", workItemInstance.getName()); assertEquals(CONTAINER_ID, workItemInstance.getContainerId()); assertEquals(0, workItemInstance.getState().intValue()); assertEquals(5, workItemInstance.getParameters().size()); assertNotNull(workItemInstance.getId()); assertNotNull(workItemInstance.getNodeId()); assertNotNull(workItemInstance.getProcessInstanceId()); processClient.abortWorkItem(CONTAINER_ID, processInstanceId, workItemInstance.getId());
assertThat(workItemInstance.getContainerId()).isEqualTo(CONTAINER_ID_101); assertThat(workItemInstance.getName()).isEqualTo("Email"); assertThat(workItemInstance.getState()).isEqualTo(WorkItem.PENDING); WorkItemInstance workItemInstance2 = processClient.getWorkItem(CONTAINER_ALIAS, pid, workItemInstance.getId()); assertThat(workItemInstance2.getId()).isEqualTo(workItemInstance.getId()); processClient.completeWorkItem(CONTAINER_ALIAS, pid, workItemInstance.getId(), null);
public String getWorkItem(String containerId, Number processInstanceId, Number workItemId, String marshallingType) { containerId = context.getContainerId(containerId, new ByProcessInstanceIdContainerLocator(processInstanceId.longValue())); WorkItem workItem = processService.getWorkItem(containerId, processInstanceId.longValue(), workItemId.longValue()); if (workItem == null) { throw new IllegalStateException("Unable to find work item with id " + workItemId); } WorkItemInstance workItemInstance = WorkItemInstance.builder() .id(workItem.getId()) .nodeInstanceId(((org.drools.core.process.instance.WorkItem) workItem).getNodeInstanceId()) .processInstanceId(workItem.getProcessInstanceId()) .containerId(((org.drools.core.process.instance.WorkItem) workItem).getDeploymentId()) .name(workItem.getName()) .nodeId(((org.drools.core.process.instance.WorkItem) workItem).getNodeId()) .parameters(workItem.getParameters()) .state(workItem.getState()) .build(); logger.debug("About to marshal work item {}", workItemInstance); String response = marshallerHelper.marshal(containerId, marshallingType, workItemInstance, new ByProcessInstanceIdContainerLocator(processInstanceId.longValue())); return response; }
assertNotNull(workItemInstance); processClient.completeWorkItem(CONTAINER_ID, processInstanceId, workItemInstance.getId(), parameters);
public static void assertWorkItemSummary(final WorkItemInstance wii, final WorkItemSummary wis) { assertNotNull(wii); assertNotNull(wis); assertEquals(wii.getId(), wis.getId()); assertEquals(wii.getName(), wis.getName()); if (wii.getParameters() != null) { assertEquals(wii.getParameters().size(), wis.getParameters().size()); wis.getParameters() .stream() .forEach(wisp -> assertEquals(wii.getParameters().get(wisp.getId()).toString(), wisp.getName())); } else { assertNull(wis.getParameters()); } }
@Test public void testGetWorkItemByProcessInstanceId() { Long workItemId = 1L; Long processInstanceId = 2L; WorkItemInstance workItem = WorkItemInstance.builder() .id(workItemId) .parameters(singletonMap("key", "value")) .build(); when(processServicesClient.getWorkItem(containerId, processInstanceId, workItemId)).thenReturn(workItem); final WorkItemSummary summary = service.getWorkItemByProcessInstanceId(serverTemplateId, containerId, processInstanceId, workItemId); assertNotNull(summary); assertWorkItemSummary(workItem, summary); }
assertEquals(1, workItems.size()); taskById = taskClient.findTaskByWorkItemId(workItems.get(0).getId()); assertTaskInstace(expecteTaskInstace, taskById); } finally {
@Override public WorkItemSummary apply(final WorkItemInstance workItemInstance) { final Optional<WorkItemInstance> request = ofNullable(workItemInstance); if (request.isPresent() == false) { return null; } WorkItemSummary summary = WorkItemSummary.builder() .id(workItemInstance.getId()) .name(workItemInstance.getName()) .state(workItemInstance.getState()) .parameters(request.map(r -> r.getParameters()) .orElse(emptyMap()) .entrySet() .stream() .map(e -> new WorkItemParameterSummary(e.getKey(), String.valueOf(e.getValue()))) .collect(toList())) .build(); return summary; } }
@Test public void testGetWorkItemByProcessInstance() throws Exception { Long processInstanceId = startProcess(CONTAINER_ID, PROCESS_ID); response = callGetWorkItemByProcessInstance(CONTAINER_ID, processInstanceId); Assert.assertEquals("Expected HTTP 200 to be returned as one work item should be returned.", Response.Status.OK.getStatusCode(), response.getStatus()); WorkItemInstanceList result = response.readEntity(WorkItemInstanceList.class); Assert.assertEquals(1, result.getItems().size()); WorkItemInstance workItem = result.getItems().get(0); Assert.assertEquals("Email", workItem.getName()); Assert.assertEquals(processInstanceId, workItem.getProcessInstanceId()); }
@Test public void testGetWorkItemByProcessInstanceId() { Long workItemId = 1L; Long processInstanceId = 2L; WorkItemInstance workItem = WorkItemInstance.builder() .id(workItemId) .parameters(singletonMap("key", "value")) .build(); when(processServicesClient.getWorkItem(containerId, processInstanceId, workItemId)).thenReturn(workItem); final WorkItemSummary summary = service.getWorkItemByProcessInstanceId(serverTemplateId, containerId, processInstanceId, workItemId); assertNotNull(summary); assertWorkItemSummary(workItem, summary); }
public String getWorkItemByProcessInstance(String containerId, Number processInstanceId, String marshallingType) { containerId = context.getContainerId(containerId, new ByProcessInstanceIdContainerLocator(processInstanceId.longValue())); List<WorkItem> workItems = processService.getWorkItemByProcessInstance(containerId, processInstanceId.longValue()); WorkItemInstance[] instances = new WorkItemInstance[workItems.size()]; int counter = 0; for (WorkItem workItem : workItems) { WorkItemInstance workItemInstance = WorkItemInstance.builder() .id(workItem.getId()) .nodeInstanceId(((org.drools.core.process.instance.WorkItem) workItem).getNodeInstanceId()) .processInstanceId(workItem.getProcessInstanceId()) .containerId(((org.drools.core.process.instance.WorkItem) workItem).getDeploymentId()) .name(workItem.getName()) .nodeId(((org.drools.core.process.instance.WorkItem) workItem).getNodeId()) .parameters(workItem.getParameters()) .state(workItem.getState()) .build(); instances[counter] = workItemInstance; counter++; } WorkItemInstanceList result = new WorkItemInstanceList(instances); logger.debug("About to marshal work items {}", result); String response = marshallerHelper.marshal(containerId, marshallingType, result); return response; }
@Test public void testWorkItemSummaryMapper_mapWorkItemSummary() { final WorkItemInstance workItemInstance = WorkItemInstance.builder() .id(1L) .name("Human Task") .parameters(singletonMap("initiator", "String")) .build(); assertWorkItemSummary(workItemInstance, new WorkItemSummaryMapper().apply(workItemInstance)); }
@Test public void testWorkItemSummaryMapper_mapWorkItemSummary() { final WorkItemInstance workItemInstance = WorkItemInstance.builder() .id(1L) .name("Human Task") .parameters(singletonMap("initiator", "String")) .build(); assertWorkItemSummary(workItemInstance, new WorkItemSummaryMapper().apply(workItemInstance)); }