Search in sources :

Example 1 with Task

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

the class AbstractTaskAssigningCoreTest method printTask.

public static String printTask(TaskAssignment taskAssignment) {
    StringBuilder builder = new StringBuilder();
    Task task = taskAssignment.getTask();
    builder.append(task.getName() + ", pinned: " + taskAssignment.isPinned() + ", priority: " + task.getPriority() + ", startTimeInMinutes: " + taskAssignment.getStartTimeInMinutes() + ", durationInMinutes:" + taskAssignment.getDurationInMinutes() + ", endTimeInMinutes: " + taskAssignment.getEndTimeInMinutes() + ", user: " + taskAssignment.getUser().getId() + ", potentialOwners: " + task.getPotentialUsers());
    return builder.toString();
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task)

Example 2 with Task

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

the class SolverTest method assertAssignment.

private void assertAssignment(User user, TaskAssignment taskAssignment, List<User> availableUsers) {
    assertThat(taskAssignment.getUser()).isNotNull();
    assertThat(taskAssignment.getUser().getId()).as("TaskAssignment: %s is not assigned to expected user: %s ", taskAssignment, user).isEqualTo(user.getId());
    Task task = taskAssignment.getTask();
    if (task.getPotentialUsers().isEmpty() && task.getPotentialGroups().isEmpty()) {
        assertThat(user.getId()).as("TaskAssignment: %s without potentialOwners can only be assigned to the PLANNING_USER", taskAssignment).isEqualTo(PLANNING_USER.getId());
    } else if (PLANNING_USER.getId().equals(user.getId())) {
        availableUsers.forEach(availableUser -> assertThat(isPotentialOwner(taskAssignment.getTask(), user)).as(String.format("PLANNING_USER user was assigned but another potential owner was found, user: %s taskAssignment: %s", user, taskAssignment)).isFalse());
    } else {
        assertThat(isPotentialOwner(taskAssignment.getTask(), user)).as(String.format("User: %s is not a potential owner for the taskAssignment: %s", user, taskAssignment)).isTrue();
    }
}
Also used : Solver(org.optaplanner.core.api.solver.Solver) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) TaskAssignment(org.kie.kogito.taskassigning.core.model.TaskAssignment) TaskAssigningSolution(org.kie.kogito.taskassigning.core.model.TaskAssigningSolution) SET_OF_24TASKS_8USERS_SOLUTION(org.kie.kogito.taskassigning.core.TestDataSet.SET_OF_24TASKS_8USERS_SOLUTION) TaskHelper.isPotentialOwner(org.kie.kogito.taskassigning.core.model.solver.TaskHelper.isPotentialOwner) AbstractTaskAssigningCoreTest(org.kie.kogito.taskassigning.core.AbstractTaskAssigningCoreTest) User(org.kie.kogito.taskassigning.core.model.User) Test(org.junit.jupiter.api.Test) Task(org.kie.kogito.taskassigning.core.model.Task) List(java.util.List) Assertions.fail(org.assertj.core.api.Assertions.fail) PLANNING_USER(org.kie.kogito.taskassigning.core.model.ModelConstants.PLANNING_USER) TaskHelper.extractTaskAssignments(org.kie.kogito.taskassigning.core.model.solver.TaskHelper.extractTaskAssignments) Timeout(org.junit.jupiter.api.Timeout) Task(org.kie.kogito.taskassigning.core.model.Task)

Example 3 with Task

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

the class TaskHelperTest method isPotentialOwnerOfTaskWithGroupsAndUserNoGroups.

@Test
void isPotentialOwnerOfTaskWithGroupsAndUserNoGroups() {
    Task task = Task.newBuilder().build();
    task.getPotentialGroups().add(availableGroups.get(0).getId());
    User user = availableUsers.get(0);
    assertThat(isPotentialOwner(task, user)).isFalse();
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task) User(org.kie.kogito.taskassigning.core.model.User) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 4 with Task

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

the class TaskHelperTest method buildTask.

private static Task buildTask(List<OrganizationalEntity> potentialOwners) {
    Task task = Task.newBuilder().build();
    potentialOwners.forEach(potentialOwner -> {
        if (potentialOwner.isUser()) {
            task.getPotentialUsers().add(potentialOwner.getId());
        } else {
            task.getPotentialGroups().add(potentialOwner.getId());
        }
    });
    return task;
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task)

Example 5 with Task

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

the class TaskHelperTest method isPotentialOwnerOfTaskWithNoGroupsAndUserWithGroups.

@Test
void isPotentialOwnerOfTaskWithNoGroupsAndUserWithGroups() {
    Task task = Task.newBuilder().build();
    User user = availableUsers.get(0);
    user.getGroups().add(availableGroups.get(0));
    assertThat(isPotentialOwner(task, user)).isFalse();
}
Also used : Task(org.kie.kogito.taskassigning.core.model.Task) User(org.kie.kogito.taskassigning.core.model.User) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Task (org.kie.kogito.taskassigning.core.model.Task)19 User (org.kie.kogito.taskassigning.core.model.User)10 Test (org.junit.jupiter.api.Test)8 TaskAssignment (org.kie.kogito.taskassigning.core.model.TaskAssignment)6 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)5 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 List (java.util.List)3 TaskAssigningSolution (org.kie.kogito.taskassigning.core.model.TaskAssigningSolution)3 AssignTaskProblemFactChange (org.kie.kogito.taskassigning.core.model.solver.realtime.AssignTaskProblemFactChange)3 UserUtil.fromExternalUser (org.kie.kogito.taskassigning.service.util.UserUtil.fromExternalUser)3 MethodSource (org.junit.jupiter.params.provider.MethodSource)2 PLANNING_USER (org.kie.kogito.taskassigning.core.model.ModelConstants.PLANNING_USER)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ZonedDateTime (java.time.ZonedDateTime)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Set (java.util.Set)1 Function (java.util.function.Function)1 Collectors (java.util.stream.Collectors)1