use of org.kie.server.services.taskassigning.core.model.TaskAssigningSolution in project droolsjbpm-integration by kiegroup.
the class SolutionChangesBuilder method addUserChanges.
private void addUserChanges(final Map<String, User> usersById, final List<AddUserProblemFactChange> newUserChanges, final List<ProblemFactChange<TaskAssigningSolution>> updateUserChanges) {
final Set<String> updatedUserIds = new HashSet<>();
filterDuplicates(externalUserList).filter(externalUser -> !IS_PLANNING_USER.test(externalUser.getId())).map(UserUtil::fromExternalUser).forEach(user -> {
final User previousUser = usersById.get(user.getEntityId());
updatedUserIds.add(user.getEntityId());
if (previousUser == null) {
newUserChanges.add(new AddUserProblemFactChange(user));
} else if (!equalsByProperties(previousUser, user)) {
updateUserChanges.add(new UserPropertyChangeProblemFactChange(previousUser, true, user.getAttributes(), user.getAllLabelValues(), user.getGroups()));
}
});
usersById.values().stream().filter(user -> !IS_PLANNING_USER.test(user.getEntityId())).filter(user -> !updatedUserIds.contains(user.getEntityId())).filter(User::isEnabled).forEach(user -> updateUserChanges.add(new DisableUserProblemFactChange(user)));
}
use of org.kie.server.services.taskassigning.core.model.TaskAssigningSolution in project droolsjbpm-integration by kiegroup.
the class SolutionBuilderTest method buildAndCheckTaskWithPlanningTaskWasProcessedCorrect.
private void buildAndCheckTaskWithPlanningTaskWasProcessedCorrect(TaskData taskData, PlanningTask planningTask, String owner, boolean pinned) {
taskData.setPlanningTask(planningTask);
List<org.kie.server.services.taskassigning.user.system.api.User> externalUsers = buildExternalUsers();
TaskAssigningSolution solution = SolutionBuilder.create().withTasks(Collections.singletonList(taskData)).withUsers(externalUsers).withContext(context).build();
assertEquals(2, solution.getTaskList().size());
assertContainsAssignedTask(taskData, owner, pinned, solution);
assertTaskChangeWasProcessed(taskData.getTaskId(), taskData.getLastModificationDate());
}
use of org.kie.server.services.taskassigning.core.model.TaskAssigningSolution in project droolsjbpm-integration by kiegroup.
the class SolutionChangesBuilderTest method addNewUserChange.
@Test
public void addNewUserChange() {
List<User> userList = mockUserList(mockUser(USER1_ID), mockUser(USER2_ID));
org.kie.server.services.taskassigning.user.system.api.User newExternalUser = mockExternalUser(USER3_ID);
org.kie.server.services.taskassigning.user.system.api.User newExternalUserRepeated1 = mockExternalUser(USER3_ID);
org.kie.server.services.taskassigning.user.system.api.User newExternalUserRepeated2 = mockExternalUser(USER3_ID);
List<org.kie.server.services.taskassigning.user.system.api.User> externalUserList = mockExternalUserList(newExternalUser, newExternalUserRepeated1, newExternalUserRepeated2);
TaskAssigningSolution solution = mockSolution(Collections.emptyList(), userList);
List<ProblemFactChange<TaskAssigningSolution>> result = SolutionChangesBuilder.create().withSolution(solution).withTasks(Collections.emptyList()).withUserSystem(userSystemService).withUsersUpdate(externalUserList).withContext(context).build();
AddUserProblemFactChange expected = new AddUserProblemFactChange(fromExternalUser(newExternalUser));
assertChangeIsTheChangeSetId(result, 0);
assertOneChange(result, 1, expected);
}
use of org.kie.server.services.taskassigning.core.model.TaskAssigningSolution in project droolsjbpm-integration by kiegroup.
the class SolutionChangesBuilderTest method addNewReadyTaskChange.
@Test
public void addNewReadyTaskChange() {
TaskData taskData = mockTaskData(TASK_ID, NAME, Ready, null);
List<TaskData> taskDataList = mockTaskDataList(taskData);
TaskAssigningSolution solution = mockSolution(Collections.emptyList(), Collections.emptyList());
List<ProblemFactChange<TaskAssigningSolution>> result = SolutionChangesBuilder.create().withSolution(solution).withTasks(taskDataList).withUserSystem(userSystemService).withContext(context).build();
AddTaskProblemFactChange expected = new AddTaskProblemFactChange(fromTaskData(taskData));
assertChangeIsTheChangeSetId(result, 0);
assertChange(result, 1, expected);
assertTaskChangeRegistered(taskData.getTaskId(), taskData.getLastModificationDate());
}
use of org.kie.server.services.taskassigning.core.model.TaskAssigningSolution in project droolsjbpm-integration by kiegroup.
the class SolutionChangesBuilderTest method addReassignReservedOrInProgressOrSuspendedTaskWhenItWasManuallyReassigned.
private void addReassignReservedOrInProgressOrSuspendedTaskWhenItWasManuallyReassigned(Status status, boolean addActualOwnerToSolution) {
TaskData taskData = mockTaskData(TASK_ID, NAME, status, ACTUAL_OWNER_ENTITY_ID);
Task task = fromTaskData(taskData);
User user = mockUser(USER_ENTITY_ID);
task.setUser(user);
List<User> userList = new ArrayList<>();
userList.add(user);
if (addActualOwnerToSolution) {
User actualOwner = mockUser(ACTUAL_OWNER_ENTITY_ID);
userList.add(actualOwner);
}
TaskAssigningSolution solution = mockSolution(Collections.singletonList(task), userList);
List<ProblemFactChange<TaskAssigningSolution>> result = SolutionChangesBuilder.create().withSolution(solution).withTasks(mockTaskDataList(taskData)).withUserSystem(userSystemService).withContext(context).build();
assertChangeIsTheChangeSetId(result, 0);
assertChange(result, 1, new AssignTaskProblemFactChange(task, mockUser(ACTUAL_OWNER_ENTITY_ID), true));
assertTaskChangeRegistered(taskData.getTaskId(), taskData.getLastModificationDate());
}
Aggregations