use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class TaskAssigningGenerator method createTaskAssigningSolution.
private TaskAssigningSolution createTaskAssigningSolution(String fileName, int taskListSize, int groupListSize, int userListSize) {
List<Group> groupList = createGroupList(groupListSize);
List<User> userList = createUserList(userListSize, groupList);
List<TaskAssignment> taskAssignmentList = createTaskAssignmentList(taskListSize, userList, groupList);
TaskAssigningSolution solution = new TaskAssigningSolution("0", userList, taskAssignmentList);
BigInteger totalFacts = AbstractSolutionImporter.factorial(taskListSize + userListSize - 1);
BigInteger fixedFacts = AbstractSolutionImporter.factorial(userListSize - 1);
BigInteger possibleSolutionSize = (totalFacts == null || fixedFacts == null) ? null : totalFacts.divide(fixedFacts);
LOGGER.info("TaskAssigningSolution {} has {} tasks, {} groups, and {} users with a search space of {}.", fileName, taskListSize, groupListSize, userListSize, AbstractSolutionImporter.getFlooredPossibleSolutionSize(possibleSolutionSize));
return solution;
}
use of org.kie.kogito.taskassigning.core.model.User 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();
}
}
use of org.kie.kogito.taskassigning.core.model.User 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();
}
use of org.kie.kogito.taskassigning.core.model.User in project kogito-apps by kiegroup.
the class TaskHelperTest method isPotentialOwnerInDirectAssignmentTrue.
@Test
void isPotentialOwnerInDirectAssignmentTrue() {
for (User user : availableUsers) {
task.getPotentialUsers().remove(user.getId());
for (Group group : availableGroups) {
user.getGroups().add(group);
assertThat(isPotentialOwner(task, user)).isTrue();
user.getGroups().remove(group);
}
}
}
use of org.kie.kogito.taskassigning.core.model.User 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();
}
Aggregations