use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class TaskHelperTest method hasAllLabels.
@ParameterizedTest
@MethodSource("testParams")
void hasAllLabels(String taskLabelName, Set<Object> taskLabelValues, String userLabelName, Set<Object> userLabelValues, LabelsCheckResult checkResult) {
Task task = mockTask(taskLabelName, taskLabelValues);
User user = mockUser(userLabelName, userLabelValues);
assertThat(TaskHelper.hasAllLabels(task, user, taskLabelName)).isEqualTo(checkResult.hasAllLabels);
}
use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class TaskHelperTest method matchingLabels.
@ParameterizedTest
@MethodSource("testParams")
void matchingLabels(String taskLabelName, Set<Object> taskLabelValues, String userLabelName, Set<Object> userLabelValues, LabelsCheckResult checkResult) {
Task task = mockTask(taskLabelName, taskLabelValues);
User user = mockUser(userLabelName, userLabelValues);
assertThat(TaskHelper.countMatchingLabels(task, user, taskLabelName)).isEqualTo(checkResult.matchingLabels);
}
use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class AssignTaskProblemFactChangeTest method doChangeForNonExistingUserAndNotAddIt.
@Test
void doChangeForNonExistingUserAndNotAddIt() {
User user = new User();
when(scoreDirector.lookUpWorkingObjectOrReturnNull(user)).thenReturn(null);
change = new AssignTaskProblemFactChange(new TaskAssignment(), user, false);
assertThatThrownBy(() -> change.doChange(scoreDirector)).hasMessage("Expected user: %s was not found in current working solution", user);
assertThat(solution.getUserList()).isEmpty();
}
use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class AssignTaskProblemFactChangeTest method doChangeForNewTaskAssignment.
@Test
void doChangeForNewTaskAssignment() {
// Initial assignments:
// User <- TASK_0 <- TASK_1 <- TASK_2 <- TASK_3 <- TASK_4
List<TaskAssignment> userTasks = buildUserTasks();
User user = buildUser(userTasks);
TaskAssignment taskAssignment = mockTaskAssignment(NEW_TASK_ID, false);
when(scoreDirector.lookUpWorkingObjectOrReturnNull(user)).thenReturn(user);
when(scoreDirector.lookUpWorkingObjectOrReturnNull(taskAssignment)).thenReturn(null);
change = new AssignTaskProblemFactChange(taskAssignment, user);
change.doChange(scoreDirector);
assertThat(solution.getTaskAssignmentList()).contains(taskAssignment);
assertPinning(taskAssignment);
verify(scoreDirector).beforeEntityAdded(taskAssignment);
verify(scoreDirector).afterEntityAdded(taskAssignment);
verify(scoreDirector).triggerVariableListeners();
// Expected assignments:
// User <- TASK_0 <- TASK_1 <- TASK_2 <- NEW_TASK_ID <- TASK_3 <- TASK_4
assertTaskPositions(user, userTasks.get(0), userTasks.get(1), taskAssignment, userTasks.get(2), userTasks.get(3), userTasks.get(4));
}
use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class AssignTaskProblemFactChangeTest method doChangeForExistingUserAndTaskAssignmentThatBelongsToAnotherUser.
@Test
void doChangeForExistingUserAndTaskAssignmentThatBelongsToAnotherUser() {
// Initial assignments:
// User1 <- TASK_0 <- TASK_1 <- TASK_2 <- TASK_3 <- TASK_4
// User2 <- USER2_TASK_0 <- USER2_TASK_1 <- USER2_TASK_2
List<TaskAssignment> user1Tasks = buildUserTasks();
User user1 = buildUser(user1Tasks);
List<TaskAssignment> user2Tasks = Arrays.asList(mockTaskAssignment(USER2_TASK_0, false), mockTaskAssignment(USER2_TASK_1, false), mockTaskAssignment(USER2_TASK_2, false));
User user2 = mockUser("USER_2", user2Tasks);
TaskAssignment taskAssignment = mockTaskAssignment(USER2_TASK_1, false);
TaskAssignment workingTaskAssignment = user2Tasks.get(1);
ChainElement originalPreviousElement = workingTaskAssignment.getPreviousElement();
TaskAssignment expectedPreviousElement = user1Tasks.get(1);
when(scoreDirector.lookUpWorkingObjectOrReturnNull(user1)).thenReturn(user1);
when(scoreDirector.lookUpWorkingObjectOrReturnNull(taskAssignment)).thenReturn(workingTaskAssignment);
change = new AssignTaskProblemFactChange(taskAssignment, user1);
change.doChange(scoreDirector);
assertPinning(workingTaskAssignment);
assertThat(workingTaskAssignment.getPreviousElement()).isSameAs(expectedPreviousElement);
assertThat(user2Tasks.get(2).getPreviousElement()).isSameAs(originalPreviousElement);
verify(scoreDirector, never()).beforeEntityAdded(any());
verify(scoreDirector, never()).afterEntityAdded(any());
verify(scoreDirector).triggerVariableListeners();
// Expected assignments:
// User1 <- TASK_0 <- TASK_1 <- USER2_TASK_1 <- TASK_2 <- TASK_3 <- TASK_4
// User2 <- USER2_TASK_0 <- USER2_TASK_2
assertTaskPositions(user1, user1Tasks.get(0), user1Tasks.get(1), workingTaskAssignment, user1Tasks.get(2), user1Tasks.get(3), user1Tasks.get(4));
assertTaskPositions(user2, user2Tasks.get(0), user2Tasks.get(2));
}
Aggregations