Search in sources :

Example 11 with User

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);
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task) User(org.kie.kogito.taskassigning.core.model.User) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 12 with User

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);
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task) User(org.kie.kogito.taskassigning.core.model.User) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 13 with User

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();
}
Also used : User(org.kie.kogito.taskassigning.core.model.User) TestUtil.mockUser(org.kie.kogito.taskassigning.core.model.TestUtil.mockUser) TestUtil.mockTaskAssignment(org.kie.kogito.taskassigning.core.model.TestUtil.mockTaskAssignment) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) Test(org.junit.jupiter.api.Test)

Example 14 with User

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));
}
Also used : User(org.kie.kogito.taskassigning.core.model.User) TestUtil.mockUser(org.kie.kogito.taskassigning.core.model.TestUtil.mockUser) TestUtil.mockTaskAssignment(org.kie.kogito.taskassigning.core.model.TestUtil.mockTaskAssignment) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) Test(org.junit.jupiter.api.Test)

Example 15 with User

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));
}
Also used : ChainElement(org.kie.kogito.taskassigning.core.model.ChainElement) User(org.kie.kogito.taskassigning.core.model.User) TestUtil.mockUser(org.kie.kogito.taskassigning.core.model.TestUtil.mockUser) TestUtil.mockTaskAssignment(org.kie.kogito.taskassigning.core.model.TestUtil.mockTaskAssignment) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) Test(org.junit.jupiter.api.Test)

Aggregations

User (org.kie.kogito.taskassigning.core.model.User)70 TaskAssignment (org.kie.kogito.taskassigning.core.model.TaskAssignment)41 Test (org.junit.jupiter.api.Test)32 TaskAssigningSolution (org.kie.kogito.taskassigning.core.model.TaskAssigningSolution)25 TestUtil.mockUser (org.kie.kogito.taskassigning.core.model.TestUtil.mockUser)14 Task (org.kie.kogito.taskassigning.core.model.Task)12 ArrayList (java.util.ArrayList)11 TestUtil.mockTaskAssignment (org.kie.kogito.taskassigning.core.model.TestUtil.mockTaskAssignment)11 AssignTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AssignTaskProblemFactChange)11 TaskUtil.fromTaskData (org.kie.kogito.taskassigning.service.util.TaskUtil.fromTaskData)10 Group (org.kie.kogito.taskassigning.core.model.Group)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)8 AddTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AddTaskProblemFactChange)8 ReleaseTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.ReleaseTaskProblemFactChange)8 RemoveTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.RemoveTaskProblemFactChange)8 ProblemFactChange (org.optaplanner.core.api.solver.ProblemFactChange)8 HashMap (java.util.HashMap)7 AddUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AddUserProblemFactChange)7 DisableUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.DisableUserProblemFactChange)7 RemoveUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.RemoveUserProblemFactChange)7