UserTaskSummary userTaskSummary = new UserTaskSummary(taskSummary.getId(), taskSummary.getName(), taskSummary.getActualOwner(), taskSummary.getStatus());
private void assertTaskSummary(TaskSummary expected, TaskSummary actual) { assertNotNull(actual); assertEquals(expected.getName(), actual.getName()); assertEquals(expected.getProcessId(), actual.getProcessId()); KieServerAssert.assertNullOrEmpty(actual.getDescription()); assertEquals(expected.getStatus(), actual.getStatus()); assertEquals(expected.getPriority(), actual.getPriority()); assertEquals(expected.getActualOwner(), actual.getActualOwner()); assertEquals(expected.getCreatedBy(), actual.getCreatedBy()); assertEquals(expected.getContainerId(), actual.getContainerId()); assertEquals(expected.getParentId(), actual.getParentId()); assertEquals(expected.getProcessInstanceId(), actual.getProcessInstanceId()); }
public Builder status(String status) { taskSummary.setStatus(status); return this; }
public void verifyActiveUserTasks(TaskSummaryList taskSummaryList, TaskSummary taskSummary) { verify(taskSummaryList).getItems(); verify(taskSummary).getName(); verify(taskSummary).getStatus(); verify(taskSummary).getActualOwner(); }
@Test public void testAddDynamicUserTaskToActiveStage() { String caseId = startCarInsuranceClaimCase(USER_YODA, USER_JOHN, USER_YODA); List<CaseStage> caseStages = caseClient.getStages(CONTAINER_ID, caseId, false, 0, 50); Assertions.assertThat(caseStages).isNotEmpty(); String activeStageId = caseStages.stream().filter(stage -> STAGE_ACTIVE_STATE.equals(stage.getStatus())) .findFirst() .orElseThrow(() -> new IllegalStateException("No active stage found.")) .getIdentifier(); final String taskName = "ContactCarProducer"; caseClient.addDynamicUserTaskToStage( CONTAINER_ID, caseId, activeStageId, taskName, "Contact car producer", USER_YODA, "NO GROUP", Collections.emptyMap()); List<TaskSummary> activeTasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA,0, 50); Assertions.assertThat(activeTasks).isNotEmpty(); Optional<TaskSummary> addedTask = activeTasks .stream() .filter(task -> taskName.equals(task.getName())) .findFirst(); Assertions.assertThat(addedTask).isNotEmpty(); taskClient.completeAutoProgress(CONTAINER_ID, addedTask.get().getId(), USER_YODA, Collections.emptyMap()); }
assertEquals(0, taskSummary.getPriority().intValue()); assertNull(taskSummary.getExpirationTime()); assertTrue(taskSummary.getSkipable().booleanValue()); assertEquals("First task", taskSummary.getName()); KieServerAssert.assertNullOrEmpty(taskSummary.getDescription()); currentTime.add(Calendar.DAY_OF_YEAR, 1); Date expirationDate = currentTime.getTime(); taskClient.setTaskDescription(CONTAINER_ID, taskSummary.getId(), "Simple user task."); taskClient.setTaskExpirationDate(CONTAINER_ID, taskSummary.getId(), expirationDate); taskClient.setTaskName(CONTAINER_ID, taskSummary.getId(), "Modified name"); taskClient.setTaskPriority(CONTAINER_ID, taskSummary.getId(), 10); taskClient.setTaskSkipable(CONTAINER_ID, taskSummary.getId(), false); taskClient.startTask(CONTAINER_ID, taskSummary.getId(), USER_YODA); TaskInstance taskInstance = taskClient.getTaskInstance(CONTAINER_ID, taskSummary.getId());
@Test public void testTaskAttachmentsWithAlias() throws Exception { Long pid = processClient.startProcess(CONTAINER_ALIAS, PROCESS_ID_EVALUATION); assertThat(pid).isNotNull().isGreaterThan(0); ProcessInstance processInstance = processClient.getProcessInstance(CONTAINER_ALIAS, pid); assertThat(processInstance).isNotNull(); List<TaskSummary> taskList = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertThat(taskList).hasSize(1); TaskSummary taskSummary = taskList.get(0); List<TaskAttachment> attachments = taskClient.getTaskAttachmentsByTaskId(CONTAINER_ALIAS, taskSummary.getId()); assertThat(attachments).isNotNull().hasSize(0); taskClient.addTaskAttachment(CONTAINER_ALIAS, taskSummary.getId(), USER_YODA, "My attachment", "Attachment Content"); attachments = taskClient.getTaskAttachmentsByTaskId(CONTAINER_ALIAS, taskSummary.getId()); assertThat(attachments).isNotNull().hasSize(1); assertThat(attachments.get(0).getContentType()).isEqualTo("java.lang.String"); TaskAttachment taskAttachment = taskClient.getTaskAttachmentById(CONTAINER_ALIAS, taskSummary.getId(), attachments.get(0).getId()); assertThat(taskAttachment.getId()).isEqualTo(attachments.get(0).getId()); Object content = taskClient.getTaskAttachmentContentById(CONTAINER_ALIAS, taskSummary.getId(), attachments.get(0).getId()); assertThat(content).isEqualTo("Attachment Content"); }
assertEquals(1, tasks.size()); TaskSummary task = tasks.get(0); assertEquals("Evaluate items?", tasks.get(0).getName()); assertEquals(CONTAINER_ID, task.getContainerId()); assertEquals(PROCESS_ID_EVALUATION, task.getProcessId()); assertEquals(processInstanceId, task.getProcessInstanceId()); assertEquals("Evaluate items?", task.getName()); assertEquals(CONTAINER_ID_2, task.getContainerId()); assertEquals(PROCESS_ID_EVALUATION_2, task.getProcessId()); assertEquals(processInstanceId, task.getProcessInstanceId()); taskClient.completeAutoProgress(CONTAINER_ID_2, task.getId(), USER_YODA, null); assertEquals("Approve", task.getName()); assertEquals(CONTAINER_ID_2, task.getContainerId()); assertEquals(PROCESS_ID_EVALUATION_2, task.getProcessId()); assertEquals(processInstanceId, task.getProcessInstanceId());
@Test public void testFindTaskWithStatusEqualsToFilter() throws Exception { Long processInstanceId = processClient.startProcess( CONTAINER_ID, PROCESS_ID_USERTASK ); Assertions.assertThat( processInstanceId ).isNotNull(); List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner( USER_YODA, 0, 10 ); Assertions.assertThat( tasks ).isNotEmpty(); TaskSummary task = tasks.get( 0 ); testFindTaskInstanceWithSearchService( createQueryFilterEqualsTo( TaskField.STATUS, task.getStatus() ), task.getId() ); }
task.getId() ); compareList.put( TaskField.DEPLOYMENTID, CONTAINER_ID ); USER_YODA ); compareList.put( TaskField.DESCRIPTION, task.getDescription() ); compareList.put( TaskField.DUEDATE, task.getExpirationTime() ); compareList.put( TaskField.PRIORITY, task.getPriority() ); compareList.put( TaskField.STATUS, task.getStatus() ); Assertions.assertThat( resultsIds ).contains( task.getId() ); .filter( taskInstance -> taskInstance.getId().equals( task.getId() ) ) .findFirst() .orElse( null ); Assertions.assertThat( instance.getActualOwner() ).isEqualTo( USER_YODA ); Assertions.assertThat( instance.getCreatedBy() ).isEqualTo( USER_YODA ); Assertions.assertThat( instance.getDescription() ).isEqualTo( task.getDescription() ); Assertions.assertThat( instance.getExpirationDate() ).isEqualTo( task.getExpirationTime() ); Assertions.assertThat( instance.getPriority() ).isEqualTo( task.getPriority() ); Assertions.assertThat( instance.getStatus() ).isEqualTo( task.getStatus() );
assertEquals(taskName, taskSummary.getName()); assertEquals(Status.Ready.toString(), taskSummary.getStatus()); Long taskId = taskList.get(0).getId(); assertClientException( () -> taskClient.claimTask(CONTAINER_ID, taskId, USER_YODA), taskClient.claimTask(CONTAINER_ID, taskSummary.getId(), USER_JOHN); taskClient.startTask(CONTAINER_ID, taskSummary.getId(), USER_JOHN); assertEquals(taskName, taskSummary.getName()); assertEquals(Status.InProgress.toString(), taskSummary.getStatus()); taskClient.completeTask(CONTAINER_ID, taskSummary.getId(), USER_JOHN, taskOutcomeComplete);
assertEquals(0, tasks.size()); taskClient.startTask(CONTAINER_ID, taskInstance.getId(), USER_YODA); tasks = taskClient.findTasksByStatusByProcessInstanceId(processInstanceId, status, 0, 10); assertNotNull(tasks); expectedTaskSummary.setStatus(Status.InProgress.toString()); assertTaskSummary(expectedTaskSummary, taskInstance);
@Test public void testSkipUserTask() throws Exception { Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); assertNotNull(processInstanceId); assertTrue(processInstanceId.longValue() > 0); try { List<TaskSummary> taskList = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertNotNull(taskList); assertEquals(1, taskList.size()); TaskSummary taskSummary = taskList.get(0); assertEquals("First task", taskSummary.getName()); assertTrue(taskSummary.getSkipable().booleanValue()); taskClient.skipTask(CONTAINER_ID, taskSummary.getId(), USER_YODA); // find all tasks with Obsolete status - should be only one taskList = taskClient.findTasksByStatusByProcessInstanceId(processInstanceId, Arrays.asList("Obsolete"), 0, 10); assertNotNull(taskList); assertEquals(1, taskList.size()); taskSummary = taskList.get(0); checkTaskNameAndStatus(taskSummary, "First task", Status.Obsolete); // Verify we did skip the task and process moved on taskList = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertNotNull(taskList); assertEquals(1, taskList.size()); taskSummary = taskList.get(0); checkTaskNameAndStatus(taskSummary, "Second task", Status.Reserved); } finally { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); } }
@Test public void testGetTriggerTask() throws Exception { String caseId = startUserTaskCase(USER_YODA, USER_JOHN); assertNotNull(caseId); assertTrue(caseId.startsWith(CASE_HR_ID_PREFIX)); changeUser(USER_JOHN); List<TaskSummary> caseTasks = caseClient.findCaseTasksAssignedAsPotentialOwner(caseId, USER_JOHN, 0, 10); assertNotNull(caseTasks); assertEquals(0, caseTasks.size()); changeUser(USER_YODA); caseClient.triggerAdHocFragment(CONTAINER_ID, caseId, HELLO_2_TASK, Collections.EMPTY_MAP); changeUser(USER_JOHN); caseTasks = caseClient.findCaseTasksAssignedAsPotentialOwner(caseId, USER_JOHN, 0, 10); assertNotNull(caseTasks); assertEquals(1, caseTasks.size()); TaskSummary task = caseTasks.get(0); assertNotNull(task); assertEquals(HELLO_2_TASK, task.getName()); assertEquals(USER_JOHN, task.getActualOwner()); changeUser(USER_YODA); caseTasks = caseClient.findCaseTasksAssignedAsPotentialOwner(caseId, USER_YODA, 0, 10); assertNotNull(caseTasks); assertEquals(1, caseTasks.size()); task = caseTasks.get(0); assertNotNull(task); assertEquals(HELLO_1_TASK, task.getName()); assertEquals(USER_YODA, task.getActualOwner()); caseClient.destroyCaseInstance(CONTAINER_ID, caseId); }
for (AuditTask taskSummary : tasks) { org.kie.server.api.model.instance.TaskSummary task = org.kie.server.api.model.instance.TaskSummary.builder() .id(taskSummary.getTaskId()) .name(taskSummary.getName())
assertEquals("Evaluate items?", tasks.get(0).getName()); assertEquals(CONTAINER_ID, task.getContainerId()); assertEquals(PROCESS_ID_EVALUATION, task.getProcessId()); assertEquals("Approve", task.getName()); assertEquals(CONTAINER_ID_2, task.getContainerId()); assertEquals(PROCESS_ID_EVALUATION_2, task.getProcessId());
@Test public void testFindTaskWithDescriptionEqualsToFilter() throws Exception { Long processInstanceId = processClient.startProcess( CONTAINER_ID, PROCESS_ID_USERTASK ); Assertions.assertThat( processInstanceId ).isNotNull(); List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner( USER_YODA, 0, 10 ); Assertions.assertThat( tasks ).isNotEmpty(); TaskSummary task = tasks.get( 0 ); testFindTaskInstanceWithSearchService( createQueryFilterEqualsTo( TaskField.DESCRIPTION, task.getDescription() ), task.getId() ); }
@Test public void testUserTaskWithUpdatedContainer() throws Exception { Long processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); try { List<TaskSummary> tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertEquals(1, tasks.size()); assertEquals("First task", tasks.get(0).getName()); assertTrue("Task should be skippable.", tasks.get(0).getSkipable().booleanValue()); // Update container to new version and restart process. processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); KieServerAssert.assertSuccess(client.updateReleaseId(CONTAINER_ID, releaseId101)); processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_USERTASK); tasks = taskClient.findTasksAssignedAsPotentialOwner(USER_YODA, 0, 10); assertEquals(1, tasks.size()); assertEquals("Updated first task", tasks.get(0).getName()); assertFalse("Task shouldn't be skippable.", tasks.get(0).getSkipable().booleanValue()); } finally { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); } }
.filter(n -> Status.Reserved.toString().equals(n.getStatus())) .collect(Collectors.toList()); Assertions.assertThat(firstTask.getProcessInstanceId()) .as("First reserved task should have bigger process instance id as results should be sorted in descending order.") .isGreaterThan(secondTask.getProcessInstanceId());