use of org.kie.kogito.taskassigning.core.model.Group in project kogito-apps by kiegroup.
the class TaskAssigningGenerator method createUserList.
private List<User> createUserList(int size, List<Group> groupList) {
List<User> userList = new ArrayList<>(size);
userNameGenerator.predictMaximumSizeAndReset(size);
for (int i = 0; i < size; i++) {
String userName = userNameGenerator.generateNextValue();
User user = new User(userName);
user.setEnabled(true);
int groupListSize = USER_GROUP_SET_SIZE_MINIMUM + random.nextInt(USER_GROUP_SET_MAXIMUM - USER_GROUP_SET_SIZE_MINIMUM);
if (groupListSize > groupList.size()) {
groupListSize = groupList.size();
}
Set<Group> groupSet = new LinkedHashSet<>(groupListSize);
int groupListIndex = random.nextInt(groupList.size());
for (int j = 0; j < groupListSize; j++) {
groupSet.add(groupList.get(groupListIndex));
groupListIndex = (groupListIndex + 1) % groupList.size();
}
user.setGroups(groupSet);
LOGGER.trace("Created user with id: ({}).", userName);
userList.add(user);
}
return userList;
}
use of org.kie.kogito.taskassigning.core.model.Group 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.Group in project kogito-apps by kiegroup.
the class TaskAssigningGenerator method createGroupList.
private List<Group> createGroupList(int size) {
List<Group> groupList = new ArrayList<>(size);
groupNameGenerator.predictMaximumSizeAndReset(size);
for (int i = 0; i < size; i++) {
String groupName = groupNameGenerator.generateNextValue();
Group group = new Group(groupName);
LOGGER.trace("Created Group with id: ({}).", groupName);
groupList.add(group);
}
return groupList;
}
use of org.kie.kogito.taskassigning.core.model.Group 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.Group in project kogito-apps by kiegroup.
the class UserPropertyChangeProblemFactChangeTest method setUp.
@BeforeEach
void setUp() {
newAttributes = new HashMap<>();
newAttributes.put("attribute1", "value1");
newGroups = new HashSet<>();
newGroups.add(new Group("test-group"));
newEnabled = false;
user = new User(USER_ID);
change = new UserPropertyChangeProblemFactChange(user, newEnabled, newAttributes, newGroups);
}
Aggregations