3321 PO 6) Never suggest the supervisor as a suitable reviewer candidate

This commit is contained in:
Andreas Svanberg 2024-02-01 15:08:23 +01:00
parent fabe1eff51
commit b4edcf50c7
2 changed files with 21 additions and 0 deletions
core/src
main/java/se/su/dsv/scipro/reviewing
test/java/se/su/dsv/scipro/reviewing

@ -132,6 +132,7 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
@Override
public ReviewerCandidates getCandidatesToReview(Project project, LocalDate date) {
List<User> reviewers = userService.findActiveReviewers();
reviewers.remove(project.getHeadSupervisor());
List<ReviewerCandidates.Candidate> good = new ArrayList<>();
List<ReviewerCandidates.Candidate> wrongLanguage = new ArrayList<>();

@ -152,6 +152,26 @@ class ReviewerCapacityServiceImplTest extends IntegrationTest {
assertTrue(candidates.good().stream().anyMatch(c -> c.reviewer().equals(reviewer)));
}
@Test
void the_supervisor_of_the_project_should_never_be_suggested_as_a_reviewer_candidate() {
// given
User supervisor = project.getHeadSupervisor();
supervisor.setRoles(EnumSet.of(Roles.SUPERVISOR, Roles.REVIEWER));
supervisor.setLanguages(EnumSet.allOf(Language.class));
supervisor.addResearchArea(researchArea);
service.assignTarget(supervisor, springTarget(1));
// when
ReviewerCandidates candidates = service.getCandidatesToReview(project, SOME_DATE_IN_SPRING);
// then
assertFalse(candidates.good().stream().anyMatch(c -> c.reviewer().equals(supervisor)));
assertFalse(candidates.wrongResearchArea().stream().anyMatch(c -> c.reviewer().equals(supervisor)));
assertFalse(candidates.wrongLanguage().stream().anyMatch(c -> c.reviewer().equals(supervisor)));
assertFalse(candidates.busy().stream().anyMatch(c -> c.reviewer().equals(supervisor)));
assertFalse(candidates.unavailable().stream().anyMatch(c -> c.reviewer().equals(supervisor)));
}
private static Target springTarget(final int target) {
return new Target(YEAR_2024, target, 0, "");
}