Search in sources :

Example 46 with TaskAssigningSolution

use of org.kie.kogito.taskassigning.core.model.TaskAssigningSolution in project kogito-apps by kiegroup.

the class TaskAssigningServiceTest method buildSolutionWithScore.

private TaskAssigningSolution buildSolutionWithScore(BendableLongScore score) {
    TaskAssigningSolution solution = buildSolution();
    solution.setScore(score);
    return solution;
}
Also used : TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution)

Example 47 with TaskAssigningSolution

use of org.kie.kogito.taskassigning.core.model.TaskAssigningSolution in project kogito-apps by kiegroup.

the class TaskAssigningServiceTest method buildSolution.

private TaskAssigningSolution buildSolution() {
    List<TaskAssignment> user1Assignments = Arrays.asList(mockTaskAssignment(TASK_1_ID), mockTaskAssignment(TASK_2_ID));
    User user1 = mockUser(USER_1_ID, user1Assignments);
    List<TaskAssignment> user2Assignments = Arrays.asList(mockTaskAssignment(TASK_3_ID), mockTaskAssignment(TASK_4_ID));
    User user2 = mockUser(USER_2_ID, user2Assignments);
    List<TaskAssignment> assignments = new ArrayList<>();
    assignments.addAll(user1Assignments);
    assignments.addAll(user2Assignments);
    return new TaskAssigningSolution("1", Arrays.asList(user1, user2), assignments);
}
Also used : User(org.kie.kogito.taskassigning.core.model.User) TestUtil.mockUser(org.kie.kogito.taskassigning.service.TestUtil.mockUser) ArrayList(java.util.ArrayList) TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) TestUtil.mockTaskAssignment(org.kie.kogito.taskassigning.service.TestUtil.mockTaskAssignment)

Example 48 with TaskAssigningSolution

use of org.kie.kogito.taskassigning.core.model.TaskAssigningSolution in project kogito-apps by kiegroup.

the class SolutionBuilderTest method build.

@Test
void build() {
    List<TaskData> taskDataList = Arrays.asList(mockTaskData(TASK1, READY.value()), mockTaskData(TASK2, RESERVED.value(), USER2), mockTaskData(TASK3, READY.value()), mockTaskData(TASK4, READY.value()), mockTaskData(TASK5, RESERVED.value(), USER2), mockTaskData(TASK6, READY.value()), mockTaskData(TASK7, RESERVED.value(), USER4), mockTaskData(TASK8, READY.value()), mockTaskData(TASK9, RESERVED.value(), USER4), mockTaskData(TASK10, RESERVED.value(), USER1), mockTaskData(TASK11, RESERVED.value(), USER_NOT_IN_THE_EXTERNAL_SYSTEM));
    List<org.kie.kogito.taskassigning.user.service.User> externalUsers = Arrays.asList(mockExternalUser(USER1), mockExternalUser(USER2), mockExternalUser(USER3), mockExternalUser(USER4));
    TaskAssigningSolution solution = SolutionBuilder.newBuilder().withTasks(taskDataList).withUsers(externalUsers).withProcessors(processorRegistry).build();
    assertThat(solution.getTaskAssignmentList()).hasSize(13);
    assertThat(solution.getUserList()).hasSize(6);
    assertThatUserHasTask(solution, USER1, 1, 0, TASK10, 0, 1);
    assertThatUserHasTask(solution, USER2, 2, 0, TASK2, 0, 1);
    assertThatUserHasTask(solution, USER2, 2, 1, TASK5, 1, 2);
    assertThatUserNoTasks(solution, USER3);
    assertThatUserHasTask(solution, USER4, 2, 0, TASK7, 0, 1);
    assertThatUserHasTask(solution, USER4, 2, 1, TASK9, 1, 2);
    assertThatUserHasTask(solution, USER_NOT_IN_THE_EXTERNAL_SYSTEM, 1, 0, TASK11, 0, 1);
    assertThatUserNoTasks(solution, PLANNING_USER_ID);
    assertThatTaskIsNotAssigned(solution, TASK1);
    assertThatTaskIsAssignedToUser(solution, TASK2, USER2);
    assertThatTaskIsNotAssigned(solution, TASK3);
    assertThatTaskIsNotAssigned(solution, TASK4);
    assertThatTaskIsAssignedToUser(solution, TASK5, USER2);
    assertThatTaskIsNotAssigned(solution, TASK6);
    assertThatTaskIsAssignedToUser(solution, TASK7, USER4);
    assertThatTaskIsNotAssigned(solution, TASK8);
    assertThatTaskIsAssignedToUser(solution, TASK9, USER4);
    assertThatTaskIsAssignedToUser(solution, TASK10, USER1);
    assertThatTaskIsAssignedToUser(solution, TASK11, USER_NOT_IN_THE_EXTERNAL_SYSTEM);
    assertThatTaskIsNotAssigned(solution, DUMMY_TASK_ASSIGNMENT.getId());
    assertThatTaskIsNotAssigned(solution, DUMMY_TASK_ASSIGNMENT_PLANNER_1738.getId());
    assertThatTaskProcessorsWereApplied(solution, processorRegistry, TASK1, TASK2, TASK3, TASK4, TASK5, TASK6, TASK7, TASK8, TASK9, TASK10, TASK11);
    assertThatUserProcessorsWereApplied(externalUsers);
}
Also used : User(org.kie.kogito.taskassigning.core.model.User) TestUtil.mockExternalUser(org.kie.kogito.taskassigning.service.TestUtil.mockExternalUser) TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution) Test(org.junit.jupiter.api.Test)

Example 49 with TaskAssigningSolution

use of org.kie.kogito.taskassigning.core.model.TaskAssigningSolution in project kogito-apps by kiegroup.

the class SolutionChangesBuilderTest method addNewReservedTaskChangeWithActualOwnerInExternalSystem.

@Test
void addNewReservedTaskChangeWithActualOwnerInExternalSystem() {
    TaskData taskData = mockTaskData(TASK_1_ID, TaskState.RESERVED.value(), USER_1, TASK_1_LAST_UPDATE);
    org.kie.kogito.taskassigning.user.service.User externalUser = mockExternalUser(USER_1);
    doReturn(externalUser).when(userServiceConnector).findUser(USER_1);
    TaskAssigningSolution solution = mockSolution(Collections.emptyList(), Collections.emptyList());
    addNewReservedTaskChangeWithActualOwner(solution, taskData);
    verify(userServiceConnector).findUser(USER_1);
    assertThatUserProcessorsWereApplied(externalUser);
}
Also used : TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution) TaskUtil.fromTaskData(org.kie.kogito.taskassigning.service.util.TaskUtil.fromTaskData) TestUtil.mockTaskData(org.kie.kogito.taskassigning.service.TestUtil.mockTaskData) Test(org.junit.jupiter.api.Test)

Example 50 with TaskAssigningSolution

use of org.kie.kogito.taskassigning.core.model.TaskAssigningSolution in project kogito-apps by kiegroup.

the class SolutionChangesBuilderTest method addReservedTaskChangeForAnotherUserNotInExternalSystem.

@Test
void addReservedTaskChangeForAnotherUserNotInExternalSystem() {
    TaskAssignment user1Assignment = new TaskAssignment(mockTask(TASK_1_ID));
    User user1 = TestUtil.mockUser(USER_1, Collections.singletonList(user1Assignment));
    TaskAssigningSolution solution = mockSolution(Collections.singletonList(user1), Collections.singletonList(user1Assignment));
    TaskData taskData = mockTaskData(TASK_1_ID, RESERVED.value(), USER_2, TASK_1_LAST_UPDATE);
    addReservedTaskChangeForAnotherUser(solution, taskData, mockUser(USER_2));
    verify(userServiceConnector).findUser(USER_2);
    assertThatUserProcessorsWereNotApplied();
}
Also used : User(org.kie.kogito.taskassigning.core.model.User) TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) TaskUtil.fromTaskData(org.kie.kogito.taskassigning.service.util.TaskUtil.fromTaskData) TestUtil.mockTaskData(org.kie.kogito.taskassigning.service.TestUtil.mockTaskData) Test(org.junit.jupiter.api.Test)

Aggregations

TaskAssigningSolution (org.kie.kogito.taskassigning.core.model.TaskAssigningSolution)65 Test (org.junit.jupiter.api.Test)30 User (org.kie.kogito.taskassigning.core.model.User)24 TaskAssignment (org.kie.kogito.taskassigning.core.model.TaskAssignment)23 ArrayList (java.util.ArrayList)15 AssignTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AssignTaskProblemFactChange)12 TaskUtil.fromTaskData (org.kie.kogito.taskassigning.service.util.TaskUtil.fromTaskData)12 AddTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AddTaskProblemFactChange)11 TestUtil.mockTaskData (org.kie.kogito.taskassigning.service.TestUtil.mockTaskData)11 ProblemFactChange (org.optaplanner.core.api.solver.ProblemFactChange)11 RemoveTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.RemoveTaskProblemFactChange)10 AddUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AddUserProblemFactChange)9 DisableUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.DisableUserProblemFactChange)7 ReleaseTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.ReleaseTaskProblemFactChange)7 RemoveUserProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.RemoveUserProblemFactChange)7 UserPropertyChangeProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.UserPropertyChangeProblemFactChange)7 List (java.util.List)5 BeforeEach (org.junit.jupiter.api.BeforeEach)5 Task (org.kie.kogito.taskassigning.core.model.Task)5 UserDataEvent (org.kie.kogito.taskassigning.service.event.UserDataEvent)5