userTaskAdminClient.addBusinessAdmins(CONTAINER_ID, task.getId(), false, add); Assertions.assertThat(businessAdmins).contains(USER_ADMINISTRATOR, "Administrators", USER_JOHN); userTaskAdminClient.removeBusinessAdminUsers(CONTAINER_ID, task.getId(), USER_JOHN); userTaskAdminClient.addBusinessAdmins(CONTAINER_ID, task.getId(), false, add); Assertions.assertThat(businessAdmins).contains(USER_YODA, USER_ADMINISTRATOR, "Administrators", "Administrators2"); userTaskAdminClient.removeBusinessAdminGroups(CONTAINER_ID, task.getId(), "Administrators2"); instance = taskClient.getTaskInstance(CONTAINER_ID, task.getId(), false, false, true); Assertions.assertThat(instance).isNotNull();
userTaskAdminClient.addExcludedOwners(CONTAINER_ID, task.getId(), false, add); Assertions.assertThat(excludedOwners).contains(USER_JOHN); userTaskAdminClient.removeExcludedOwnerUsers(CONTAINER_ID, task.getId(), USER_JOHN); userTaskAdminClient.addExcludedOwners(CONTAINER_ID, task.getId(), false, add); Assertions.assertThat(excludedOwners).contains(USER_YODA, "PM"); userTaskAdminClient.removeExcludedOwnerGroups(CONTAINER_ID, task.getId(), "PM");
userTaskAdminClient.addPotentialOwners(CONTAINER_ID_ALIAS, task.getId(), false, add); Assertions.assertThat(potOwners).contains(USER_YODA, USER_JOHN, "PM", "HR"); userTaskAdminClient.removePotentialOwnerUsers(CONTAINER_ID_ALIAS, task.getId(), USER_YODA); Assertions.assertThat(potOwners).contains(USER_JOHN, "PM", "HR"); userTaskAdminClient.removePotentialOwnerGroups(CONTAINER_ID_ALIAS, task.getId(), "PM", "HR"); instance = taskClient.getTaskInstance(CONTAINER_ID_ALIAS, task.getId(), false, false, true); Assertions.assertThat(instance).isNotNull(); userTaskAdminClient.addPotentialOwners(CONTAINER_ID_ALIAS, task.getId(), false, add);
List<TaskReassignment> reassignments = userTaskAdminClient.getTaskReassignments(CONTAINER_ID, taskId, true); Assertions.assertThat(reassignments).isNotNull(); Assertions.assertThat(reassignments).hasSize(0); Long reassignmentId = null; if (whenNotStarted) { reassignmentId = userTaskAdminClient.reassignWhenNotStarted(CONTAINER_ID, taskId, "10s", reassign); } else { reassignmentId = userTaskAdminClient.reassignWhenNotCompleted(CONTAINER_ID, taskId, "10s", reassign); reassignments = userTaskAdminClient.getTaskReassignments(CONTAINER_ID, taskId, true); Assertions.assertThat(reassignments).isNotNull(); Assertions.assertThat(reassignments).hasSize(1); userTaskAdminClient.cancelReassignment(CONTAINER_ID, taskId, reassignmentId); reassignments = userTaskAdminClient.getTaskReassignments(CONTAINER_ID, taskId, true); Assertions.assertThat(reassignments).isNotNull(); Assertions.assertThat(reassignments).hasSize(0);
List<TaskNotification> notifications = userTaskAdminClient.getTaskNotifications(CONTAINER_ID, taskId, true); Assertions.assertThat(notifications).isNotNull(); Assertions.assertThat(notifications).hasSize(0); Long notificationId = null; if (whenNotStarted) { notificationId = userTaskAdminClient.notifyWhenNotStarted(CONTAINER_ID, taskId, "10s", emailNotification); } else { notificationId = userTaskAdminClient.notifyWhenNotCompleted(CONTAINER_ID, taskId, "10s", emailNotification); notifications = userTaskAdminClient.getTaskNotifications(CONTAINER_ID, taskId, true); Assertions.assertThat(notifications).isNotNull(); Assertions.assertThat(notifications).hasSize(1); userTaskAdminClient.cancelNotification(CONTAINER_ID, taskId, notificationId); notifications = userTaskAdminClient.getTaskNotifications(CONTAINER_ID, taskId, true); Assertions.assertThat(notifications).isNotNull(); Assertions.assertThat(notifications).hasSize(0);
data.put("new content", "test"); userTaskAdminClient.addTaskInputs(CONTAINER_ID, task.getId(), data); Assertions.assertThat(input.get("new content")).isEqualTo("test"); userTaskAdminClient.removeTaskInputs(CONTAINER_ID, task.getId(), "new content"); instance = taskClient.getTaskInstance(CONTAINER_ID, task.getId(), true, false, false); Assertions.assertThat(instance).isNotNull(); Assertions.assertThat(output.get("new content")).isEqualTo("test"); userTaskAdminClient.removeTaskOutputs(CONTAINER_ID, task.getId(), "new content"); instance = taskClient.getTaskInstance(CONTAINER_ID, task.getId(), false, true, false); Assertions.assertThat(instance).isNotNull();
data.put("new content", "test"); userTaskAdminClient.addTaskInputs(CONTAINER_ALIAS, taskSummary.getId(), data); assertThat(inputContent.get("new content")).isEqualTo("test"); userTaskAdminClient.removeTaskInputs(CONTAINER_ALIAS, taskSummary.getId(), "new content");
userTaskAdminClient.acknowledgeError(CONTAINER_ID, errorInstance.getErrorId()); errorInstance = userTaskAdminClient.getError(CONTAINER_ID, errorInstance.getErrorId()); assertNotNull(errorInstance); assertNotNull(errorInstance.getErrorId());
@Test public void testAddPotentialOwnersToNonExistentTask() throws Exception { changeUser(USER_ADMINISTRATOR); OrgEntities add = OrgEntities.builder().users(Arrays.asList(USER_JOHN)).build(); assertExceptionContainsCorrectMessage(() -> userTaskAdminClient.addPotentialOwners(CONTAINER_ID, BAD_TASK_ID, false, add), "Error code: 404", "Task with id " + BAD_TASK_ID + " was not found"); }
@Test public void testAddPotentialOwnersWithBadContainerId() throws Exception { changeUser(USER_ADMINISTRATOR); Map<String, Object> parameters = new HashMap<>(); Long processInstanceId = null; try { processInstanceId = processClient.startProcess(CONTAINER_ID, PROCESS_ID_EVALUATION, parameters); List<TaskSummary> tasks = taskClient.findTasksAssignedAsBusinessAdministrator(USER_ADMINISTRATOR, 0, 10); TaskSummary task = tasks.get(0); OrgEntities add = OrgEntities.builder().users(Arrays.asList(USER_JOHN)).build(); assertExceptionContainsCorrectMessage(() -> userTaskAdminClient.addPotentialOwners(BAD_CONTAINER_ID, task.getId(), false, add), "Container '" + BAD_CONTAINER_ID +"' is not instantiated or cannot find container for alias '" + BAD_CONTAINER_ID +"'", "Container '" + BAD_CONTAINER_ID +"' is not instantiated or cannot find container for alias '" + BAD_CONTAINER_ID +"'"); } finally { if (processInstanceId != null) { processClient.abortProcessInstance(CONTAINER_ID, processInstanceId); } } }
userTaskAdminClient.addPotentialOwners(CONTAINER_ID, task.getId(), false, add); Assertions.assertThat(potOwners).contains(USER_YODA, USER_JOHN, "PM", "HR"); userTaskAdminClient.removePotentialOwnerUsers(CONTAINER_ID, task.getId(), USER_YODA); Assertions.assertThat(potOwners).contains(USER_JOHN, "PM", "HR"); userTaskAdminClient.removePotentialOwnerGroups(CONTAINER_ID, task.getId(), "PM", "HR"); instance = taskClient.getTaskInstance(CONTAINER_ID, task.getId(), false, false, true); Assertions.assertThat(instance).isNotNull(); userTaskAdminClient.addPotentialOwners(CONTAINER_ID, task.getId(), false, add);
@Test public void testAddPotentialOwnersWithBadContainerAlias() throws Exception { changeUser(USER_ADMINISTRATOR); Map<String, Object> parameters = new HashMap<>(); Long processInstanceId = null; try { processInstanceId = processClient.startProcess(CONTAINER_ID_V2, PROCESS_ID_EVALUATION, parameters); List<TaskSummary> tasks = taskClient.findTasksAssignedAsBusinessAdministrator(USER_ADMINISTRATOR, 0, 10); TaskSummary task = tasks.get(0); OrgEntities add = OrgEntities.builder().users(Arrays.asList(USER_JOHN)).build(); assertExceptionContainsCorrectMessage(() -> userTaskAdminClient.addPotentialOwners(CONTAINER_ID_ALIAS, task.getId(), false, add), "Container '" + CONTAINER_ID_V2 + "' is not associated with alias '" + CONTAINER_ID_ALIAS + "'", "Container '" + CONTAINER_ID_V2 + "' is not associated with alias '" + CONTAINER_ID_ALIAS + "'"); } finally { if (processInstanceId != null) { processClient.abortProcessInstance(CONTAINER_ID_V2, processInstanceId); } } }