3321 Do not include the current reviewer as a candidate.

This commit is contained in:
Andreas Svanberg 2024-02-01 15:42:56 +01:00
parent 36d3ab35ad
commit 764986d007
2 changed files with 20 additions and 0 deletions
core/src
main/java/se/su/dsv/scipro/reviewing
test/java/se/su/dsv/scipro/reviewing

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

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