diff --git a/build.gradle.kts b/build.gradle.kts index 860bfd3e1e76c5bf8fc68a5e960d68b185897e67..32ac35760d1a3909d3d501413ef57f80e9a2a759 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ version = "2.1.0" val javaVersion = JavaVersion.VERSION_17 -val labradoorVersion = "1.3.2-SNAPSHOT" +val labradoorVersion = "1.4.1-SNAPSHOT" val libradorVersion = "1.2.2-SNAPSHOT" val chihuahUIVersion = "1.0.0" val samlVersion = "1.17" diff --git a/src/main/java/nl/tudelft/submit/cache/RoleCacheManager.java b/src/main/java/nl/tudelft/submit/cache/RoleCacheManager.java index 7ea44fd2d0b985cdda768e5c3d83cf16fdf04b51..ec8796cff505d6c9b37be9dd0230ff7d447c1971 100644 --- a/src/main/java/nl/tudelft/submit/cache/RoleCacheManager.java +++ b/src/main/java/nl/tudelft/submit/cache/RoleCacheManager.java @@ -41,8 +41,8 @@ public class RoleCacheManager extends CoreCacheManager<Id, RoleDetailsDTO> { @Override protected List<RoleDetailsDTO> fetch(List<Id> ids) { return api.getRolesById( - ids.stream().map(Id::getEditionId).collect(Collectors.toList()), - ids.stream().map(Id::getPersonId).collect(Collectors.toList())) + ids.stream().map(Id::getEditionId).collect(Collectors.toSet()), + ids.stream().map(Id::getPersonId).collect(Collectors.toSet())) .collectList().block(); } diff --git a/src/main/java/nl/tudelft/submit/cache/SubmissionCacheManager.java b/src/main/java/nl/tudelft/submit/cache/SubmissionCacheManager.java index 4357c5d7ca60bbe19be4081a7737842540781c55..eb6939072917df4b366013e15de233ca9ec57c87 100644 --- a/src/main/java/nl/tudelft/submit/cache/SubmissionCacheManager.java +++ b/src/main/java/nl/tudelft/submit/cache/SubmissionCacheManager.java @@ -17,6 +17,7 @@ */ package nl.tudelft.submit.cache; +import java.util.HashSet; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -35,7 +36,7 @@ public class SubmissionCacheManager extends CoreCacheManager<Long, SubmissionDet @Override protected List<SubmissionDetailsDTO> fetch(List<Long> ids) { - return api.getAllSubmissionsById(ids).collectList().block(); + return api.getAllSubmissionsById(new HashSet<>(ids)).collectList().block(); } @Override diff --git a/src/main/java/nl/tudelft/submit/service/AssignmentService.java b/src/main/java/nl/tudelft/submit/service/AssignmentService.java index 835c2b3bb03985887b77dc8fe03228a0085cb7f7..30759bb4abdd5d1d2e7b5bc08bf2a4e927174544 100644 --- a/src/main/java/nl/tudelft/submit/service/AssignmentService.java +++ b/src/main/java/nl/tudelft/submit/service/AssignmentService.java @@ -181,9 +181,9 @@ public class AssignmentService { patch.setAcceptLateSubmissions(false); } if (patch.getAllowedFileTypes() == null) { - patch.setAllowedFileTypes(Collections.emptyList()); + patch.setAllowedFileTypes(Collections.emptySet()); } - id = assignmentApi.patchAssignment(id, patch).block(); + id = assignmentApi.patchAssignment(patch, id).block(); assignmentRepository.save(assignmentPatchDTO.apply(getOrCreateSubmitAssignment(id))); if (isTransparent(id)) { @@ -344,7 +344,7 @@ public class AssignmentService { GradeBatchImportDTO importDto = new GradeBatchImportDTO() .type(GradeBatchImportDTO.TypeEnum.valueOf(gradeImport.getIdType().name())) .grades(grades); - gradeApi.importGrades(assignmentId, importDto).block(); + gradeApi.importGrades(importDto, assignmentId).block(); } } diff --git a/src/main/java/nl/tudelft/submit/service/EditionService.java b/src/main/java/nl/tudelft/submit/service/EditionService.java index 065cdc3451ddd0a2e8b949a9a2211b8950ea85ed..82bd1ca7e32d62b07f7bb6fa5e884294edca59d1 100644 --- a/src/main/java/nl/tudelft/submit/service/EditionService.java +++ b/src/main/java/nl/tudelft/submit/service/EditionService.java @@ -200,7 +200,7 @@ public class EditionService { * @param person The person to add */ public void addUser(Long id, Person person) { - editionApi.addStudentsToEdition(id, List.of(person.getUsername()), false).block(); + editionApi.addStudentsToEdition(List.of(person.getUsername()), id, false).block(); String editionName = editionCache.getOrThrow(id).getName(); NotificationPreference pref = userSettingsService @@ -230,7 +230,7 @@ public class EditionService { * @param role The role to give the user */ public void addRole(Long id, Long personId, String username, RolePatchDTO.TypeEnum role) { - editionApi.addStudentsToEdition(id, List.of(username), false).block(); + editionApi.addStudentsToEdition(List.of(username), id, false).block(); roleService.patchRole(personId, id, new RolePatchDTO().type(role)); } @@ -241,7 +241,7 @@ public class EditionService { * @param usernames The list of usernames */ public void addUsers(Long id, List<String> usernames) { - editionApi.addStudentsToEdition(id, usernames, false).block(); + editionApi.addStudentsToEdition(usernames, id, false).block(); } /** @@ -351,7 +351,7 @@ public class EditionService { */ public Long patchEdition(Long id, SubmitEditionPatchDTO patch) { editionRepository.save(patch.apply(getOrCreateSubmitEdition(id))); - return editionApi.patchEdition(id, mapper.map(patch, EditionPatchDTO.class)).block(); + return editionApi.patchEdition(mapper.map(patch, EditionPatchDTO.class), id).block(); } /** @@ -460,7 +460,7 @@ public class EditionService { roles.put(username, ParticipantsImportDTO.InnerEnum.valueOf(role)); } if (!roles.isEmpty()) { - editionApi.addParticipantsToEdition(id, new ParticipantsImportDTO().participants(roles), false) + editionApi.addParticipantsToEdition(new ParticipantsImportDTO().participants(roles), id, false) .block(); } } diff --git a/src/main/java/nl/tudelft/submit/service/ModuleDivisionService.java b/src/main/java/nl/tudelft/submit/service/ModuleDivisionService.java index 85afb859d809af67a02c9e8865a3dbc531d2cb30..05c9151158ed9e89a1f2ef392a812276ca0a5da6 100644 --- a/src/main/java/nl/tudelft/submit/service/ModuleDivisionService.java +++ b/src/main/java/nl/tudelft/submit/service/ModuleDivisionService.java @@ -72,7 +72,7 @@ public class ModuleDivisionService { * @param dto the dto which holds the division of people */ public void importDivisions(Long moduleId, ModuleDivisionImportDTO dto) { - divisionApi.importDivisions(moduleId, dto.getDivisions(), false).block(); + divisionApi.importDivisions(dto.getDivisions(), moduleId, false).block(); } /** @@ -97,7 +97,7 @@ public class ModuleDivisionService { .map(d -> new ModuleDivisionCreateDTO().usernames(d.getPeople().stream() .map(PersonSummaryDTO::getUsername).collect(Collectors.toList()))) .collect(Collectors.toList()); - divisionApi.importDivisions(to, createDTOs, false).block(); + divisionApi.importDivisions(createDTOs, to, false).block(); } /** @@ -118,7 +118,7 @@ public class ModuleDivisionService { * @param username the username of the person to add */ public void addPersonToDivision(Long id, String username) { - divisionApi.addPersonToDivision(id, username, false).block(); + divisionApi.addPersonToDivision(username, id, false).block(); } /** @@ -128,7 +128,7 @@ public class ModuleDivisionService { * @param username the username of the person to add */ public void addPersonToRandomDivision(Long moduleId, String username) { - divisionApi.addPersonToRandomDivision(moduleId, username, false).block(); + divisionApi.addPersonToRandomDivision(username, moduleId, false).block(); } /** @@ -141,7 +141,7 @@ public class ModuleDivisionService { .getStudents(moduleService.getModuleById(moduleId).getEdition().getId()).stream() .map(r -> r.getPerson().getUsername()).collect(Collectors.toList()); divisionApi - .importDivisions(moduleId, List.of(new ModuleDivisionCreateDTO().usernames(students)), false) + .importDivisions(List.of(new ModuleDivisionCreateDTO().usernames(students)), moduleId, false) .block(); } diff --git a/src/main/java/nl/tudelft/submit/service/ModuleService.java b/src/main/java/nl/tudelft/submit/service/ModuleService.java index f7b8214338f4769799947370bb070f0b2339cf00..823158b5e031c14b77d6a9aa32e216205783bfcf 100644 --- a/src/main/java/nl/tudelft/submit/service/ModuleService.java +++ b/src/main/java/nl/tudelft/submit/service/ModuleService.java @@ -125,7 +125,7 @@ public class ModuleService { * @param modulePatch The module containing all changed information. */ public void patchModule(Long id, ModulePatchDTO modulePatch) { - moduleApi.patchModule(id, modulePatch).block(); + moduleApi.patchModule(modulePatch, id).block(); } /** diff --git a/src/main/java/nl/tudelft/submit/service/RoleService.java b/src/main/java/nl/tudelft/submit/service/RoleService.java index 9aa4552cc49fa9580ef59462823960cf554c029e..b943a49bb429e98cada4a3acff3856339cf91136 100644 --- a/src/main/java/nl/tudelft/submit/service/RoleService.java +++ b/src/main/java/nl/tudelft/submit/service/RoleService.java @@ -130,7 +130,7 @@ public class RoleService { * @return The id of the role that was patched. */ public Id patchRole(Long personId, Long editionId, RolePatchDTO rolePatchDTO) { - return roleApi.patchRole(personId, editionId, rolePatchDTO).block(); + return roleApi.patchRole(rolePatchDTO, personId, editionId).block(); } } diff --git a/src/main/java/nl/tudelft/submit/service/ScriptService.java b/src/main/java/nl/tudelft/submit/service/ScriptService.java index f326e5477ab0c3c96419071f1ab613c709867be9..cad2b97c3e54675a48f74a50e8f52223285e8db5 100644 --- a/src/main/java/nl/tudelft/submit/service/ScriptService.java +++ b/src/main/java/nl/tudelft/submit/service/ScriptService.java @@ -268,7 +268,7 @@ public class ScriptService { } private void sendUpdateNotification(Long submissionId, Long gradeId) { - SubmissionDetailsDTO submission = submissionApi.getAllSubmissionsById(List.of(submissionId)) + SubmissionDetailsDTO submission = submissionApi.getAllSubmissionsById(Set.of(submissionId)) .blockFirst(); GradeSummaryDTO grade = gradeService.getRelevantGrade(List.of(submission)) .filter(g -> g.getId().equals(gradeId)).orElse(null); diff --git a/src/main/java/nl/tudelft/submit/service/StudentGroupService.java b/src/main/java/nl/tudelft/submit/service/StudentGroupService.java index 3abd5e85be451cf09e0c4a0ba5d29bf676e4d26e..b9b49438bd5bc39166090ca7a22d837f5fbccaa0 100644 --- a/src/main/java/nl/tudelft/submit/service/StudentGroupService.java +++ b/src/main/java/nl/tudelft/submit/service/StudentGroupService.java @@ -190,7 +190,7 @@ public class StudentGroupService { * @param dto the dto with the patches */ public void patchGroup(Long id, StudentGroupPatchDTO dto) { - groupApi.patchGroup(id, dto).block(); + groupApi.patchGroup(dto, id).block(); } /** @@ -200,7 +200,7 @@ public class StudentGroupService { * @param dto the parameters (amount and capacity) */ public void generateGroupsForModule(Long moduleId, GroupGenerateDTO dto) { - groupApi.generateGroupsForModule(moduleId, dto).block(); + groupApi.generateGroupsForModule(dto, moduleId).block(); } /** @@ -210,7 +210,7 @@ public class StudentGroupService { * @param capacity the capacity the groups should have */ public void allocateGroupsForModuleParticipants(Long moduleId, Integer capacity) { - groupApi.allocateGroupsForModule(moduleId, capacity).block(); + groupApi.allocateGroupsForModule(capacity, moduleId).block(); } /** diff --git a/src/main/java/nl/tudelft/submit/service/SubmissionService.java b/src/main/java/nl/tudelft/submit/service/SubmissionService.java index 0905dd75aac90fb6f8f9b337148eeff7425bb6ea..2548ea2681e94505d71a14848de957f3f2f8cbd6 100644 --- a/src/main/java/nl/tudelft/submit/service/SubmissionService.java +++ b/src/main/java/nl/tudelft/submit/service/SubmissionService.java @@ -296,7 +296,7 @@ public class SubmissionService { * @param allowedFileTypes The allowed file types for assignment for which the submission is made * @param fileMap The map of the files the user is trying to upload */ - public boolean checkSubmission(List<String> allowedFileTypes, Map<String, MultipartFile> fileMap) { + public boolean checkSubmission(Set<String> allowedFileTypes, Map<String, MultipartFile> fileMap) { for (MultipartFile file : fileMap.values()) { if (!allowedFileTypes.isEmpty() && allowedFileTypes.stream() .noneMatch(ext -> file.getResource().getFilename().endsWith(ext))) { diff --git a/src/test/java/nl/tudelft/submit/controller/SubmissionControllerTest.java b/src/test/java/nl/tudelft/submit/controller/SubmissionControllerTest.java index b04e9d882a705992903dd1a04e0b9f1d8816fb5e..3c264e54e0e16f0ef636d4993032b1bdfb2a0883 100644 --- a/src/test/java/nl/tudelft/submit/controller/SubmissionControllerTest.java +++ b/src/test/java/nl/tudelft/submit/controller/SubmissionControllerTest.java @@ -79,9 +79,9 @@ class SubmissionControllerTest { private static final AssignmentSummaryDTO ASSIGNMENT_SUMMARY_DTO = new AssignmentSummaryDTO() .id(ASSIGNMENT_ID); private static final AssignmentDetailsDTO ASSIGNMENT_DETAILS_DTO = new AssignmentDetailsDTO() - .id(ASSIGNMENT_ID).module(new ModuleSummaryDTO().id(MODULE_ID)).allowedFileTypes(List.of(".txt")); + .id(ASSIGNMENT_ID).module(new ModuleSummaryDTO().id(MODULE_ID)).allowedFileTypes(Set.of(".txt")); private static final AssignmentModuleDetailsDTO ASSIGNMENT_MODULE_DETAILS_DTO = new AssignmentModuleDetailsDTO() - .id(ASSIGNMENT_ID).module(new ModuleLayer1DTO().id(MODULE_ID)).allowedFileTypes(List.of(".txt")); + .id(ASSIGNMENT_ID).module(new ModuleLayer1DTO().id(MODULE_ID)).allowedFileTypes(Set.of(".txt")); private static final SubmissionSummaryDTO SUB_VIEW_DTO = new SubmissionSummaryDTO().id(111L); private static final SubmissionMemberDetailsDTO SUB_DETAILED_MEM_VIEW_DTO = new SubmissionMemberDetailsDTO() .id(777L) @@ -141,7 +141,7 @@ class SubmissionControllerTest { when(authService.canSubmitAssignment(anyLong(), anyLong())).thenReturn(true); when(submissionService.addSubmission(SUB_CREATE_DTO)).thenReturn(SUBMISSION_ID); when(submissionService.canMakeSubmission(anyLong(), anyLong())).thenReturn(true); - when(submissionService.checkSubmission(anyList(), any())).thenReturn(true); + when(submissionService.checkSubmission(anySet(), any())).thenReturn(true); when(userSettingsService.getOrCreateUserSettings(any())).thenReturn(settings); when(assignmentService.getAssignmentDetails(anyLong())).thenReturn(ASSIGNMENT_DETAILS_DTO); when(groupService.getGroupForPersonInModule(anyLong(), anyLong())) @@ -169,7 +169,7 @@ class SubmissionControllerTest { when(authService.canSubmitAssignment(anyLong(), anyLong())).thenReturn(true); when(submissionService.addSubmission(SUB_CREATE_DTO)).thenReturn(SUBMISSION_ID); when(submissionService.canMakeSubmission(anyLong(), anyLong())).thenReturn(true); - when(submissionService.checkSubmission(anyList(), any())).thenReturn(true); + when(submissionService.checkSubmission(anySet(), any())).thenReturn(true); when(assignmentService.getAssignmentDetails(anyLong())).thenReturn(ASSIGNMENT_DETAILS_DTO); when(groupService.getGroupForPersonInModule(anyLong(), anyLong())) .thenReturn(Optional.ofNullable(new StudentGroupDetailsDTO().id(GROUP_ID))); @@ -209,7 +209,7 @@ class SubmissionControllerTest { when(authService.canSubmitAssignment(anyLong(), anyLong())).thenReturn(true); when(submissionService.addSubmission(SUB_CREATE_DTO)).thenReturn(SUBMISSION_ID); when(submissionService.canMakeSubmission(anyLong(), anyLong())).thenReturn(true); - when(submissionService.checkSubmission(anyList(), any())).thenCallRealMethod(); + when(submissionService.checkSubmission(anySet(), any())).thenCallRealMethod(); when(assignmentService.getAssignmentDetails(anyLong())).thenReturn(ASSIGNMENT_DETAILS_DTO); when(groupService.getGroupForPersonInModule(anyLong(), anyLong())) .thenReturn(Optional.ofNullable(new StudentGroupDetailsDTO().id(GROUP_ID))); diff --git a/src/test/java/nl/tudelft/submit/service/AssignmentServiceTest.java b/src/test/java/nl/tudelft/submit/service/AssignmentServiceTest.java index a4f282cfd80112fb95e8707860134230c2796460..14ee4dcf45d1536d434c6989cf1d797b0a83219c 100644 --- a/src/test/java/nl/tudelft/submit/service/AssignmentServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/AssignmentServiceTest.java @@ -19,6 +19,7 @@ package nl.tudelft.submit.service; import static java.time.LocalDateTime.now; import static java.util.Collections.emptyList; +import static java.util.Collections.emptySet; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.*; @@ -183,30 +184,30 @@ class AssignmentServiceTest { void patchAssignment() { SubmitAssignmentPatchDTO patch = new SubmitAssignmentPatchDTO(); - when(assignmentApi.patchAssignment(anyLong(), any(AssignmentPatchDTO.class))) + when(assignmentApi.patchAssignment(any(AssignmentPatchDTO.class), anyLong())) .thenReturn(Mono.just(ASSIGNMENT_ID)); assertThat(assignmentService.patchAssignment(ASSIGNMENT_ID, patch)).isEqualTo(ASSIGNMENT_ID); - verify(assignmentApi).patchAssignment(ASSIGNMENT_ID, - new AssignmentPatchDTO().acceptLateSubmissions(false) - .allowedFileTypes(emptyList())); + verify(assignmentApi).patchAssignment( + new AssignmentPatchDTO().acceptLateSubmissions(false).allowedFileTypes(emptySet()), + ASSIGNMENT_ID); } @Test void patchAssignmentWithTrain() { SubmitAssignmentPatchDTO patch = new SubmitAssignmentPatchDTO(); - when(assignmentApi.patchAssignment(anyLong(), any(AssignmentPatchDTO.class))) + when(assignmentApi.patchAssignment(any(AssignmentPatchDTO.class), anyLong())) .thenReturn(Mono.just(ASSIGNMENT_ID)); when(versionService.getVersionsPerAssignment(anyLong())).thenReturn(List.of(VersionViewDTO.builder() .name("_unit").build())); assertThat(assignmentService.patchAssignment(ASSIGNMENT_ID, patch)).isEqualTo(ASSIGNMENT_ID); - verify(assignmentApi).patchAssignment(ASSIGNMENT_ID, - new AssignmentPatchDTO().acceptLateSubmissions(false) - .allowedFileTypes(emptyList())); + verify(assignmentApi).patchAssignment( + new AssignmentPatchDTO().acceptLateSubmissions(false).allowedFileTypes(emptySet()), + ASSIGNMENT_ID); verify(versionService).patchUnitVersion(ASSIGNMENT_ID, patch); } @@ -330,12 +331,12 @@ class AssignmentServiceTest { .hasHeaders(true).idColumn(0) .idType(GradeImportIdType.USERNAME).build()); - verify(gradeApi, never()).importGrades(anyLong(), any()); + verify(gradeApi, never()).importGrades(any(), anyLong()); } @Test public void importGrades() throws IOException, CsvValidationException { - when(gradeApi.importGrades(anyLong(), any())).thenReturn(Mono.empty()); + when(gradeApi.importGrades(any(), anyLong())).thenReturn(Mono.empty()); assignmentService.importGrades(ASSIGNMENT_ID, new StringReader("username;grade\ntestuser1;3.0\ntestuser2;9.1"), @@ -344,7 +345,7 @@ class AssignmentServiceTest { ArgumentCaptor<GradeBatchImportDTO> argumentCaptor = ArgumentCaptor .forClass(GradeBatchImportDTO.class); - verify(gradeApi).importGrades(eq(ASSIGNMENT_ID), argumentCaptor.capture()); + verify(gradeApi).importGrades(argumentCaptor.capture(), eq(ASSIGNMENT_ID)); GradeBatchImportDTO dto = argumentCaptor.getValue(); assertThat(dto.getGrades().get(0).getGradeeId()).isEqualTo("testuser1"); diff --git a/src/test/java/nl/tudelft/submit/service/EditionServiceTest.java b/src/test/java/nl/tudelft/submit/service/EditionServiceTest.java index 4c72aec8455bf738b46a5e0b27f04c7c18696eb5..f00a8e0e070cdf46dc6c96a7e9990de55dbfec66 100644 --- a/src/test/java/nl/tudelft/submit/service/EditionServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/EditionServiceTest.java @@ -120,25 +120,25 @@ public class EditionServiceTest { public void testAddUser() { when(editionCache.getOrThrow(anyLong())) .thenReturn(new EditionDetailsDTO().name("test edition")); - when(editionApi.addStudentsToEdition(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(editionApi.addStudentsToEdition(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); when(userSettingsService.getOrCreateUserSettings(any())) .thenReturn(UserSettings.builder().onAddedToCourse(NotificationPreference.NONE).build()); editionService.addUser(EDITION_ID, Person.builder().username("testuser").email("").id(PERSON_ID).build()); - verify(editionApi).addStudentsToEdition(EDITION_ID, List.of("testuser"), false); + verify(editionApi).addStudentsToEdition(List.of("testuser"), EDITION_ID, false); } @Test public void testAddUsers() { - when(editionApi.addStudentsToEdition(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(editionApi.addStudentsToEdition(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); List<String> usernames = List.of("testuser1", "testuser2"); editionService.addUsers(EDITION_ID, usernames); - verify(editionApi).addStudentsToEdition(EDITION_ID, usernames, false); + verify(editionApi).addStudentsToEdition(usernames, EDITION_ID, false); } @Test @@ -208,12 +208,12 @@ public class EditionServiceTest { public void testPatchEdition() { SubmitEditionPatchDTO patch = new SubmitEditionPatchDTO(); - when(editionApi.patchEdition(eq(EDITION_ID), any(EditionPatchDTO.class))) + when(editionApi.patchEdition(any(EditionPatchDTO.class), eq(EDITION_ID))) .thenReturn(Mono.just(EDITION_ID)); assertThat(editionService.patchEdition(EDITION_ID, patch)).isEqualTo(EDITION_ID); - verify(editionApi).patchEdition(EDITION_ID, new EditionPatchDTO()); + verify(editionApi).patchEdition(new EditionPatchDTO(), EDITION_ID); } @Test @@ -421,12 +421,12 @@ public class EditionServiceTest { .hasHeaders(true).idColumn(0) .build()); - verify(editionApi, never()).addParticipantsToEdition(anyLong(), any(), anyBoolean()); + verify(editionApi, never()).addParticipantsToEdition(any(), anyLong(), anyBoolean()); } @Test public void importGrades() throws IOException, CsvValidationException { - when(editionApi.addParticipantsToEdition(anyLong(), any(), anyBoolean())).thenReturn(Mono.empty()); + when(editionApi.addParticipantsToEdition(any(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); editionService.importParticipants(EDITION_ID, new StringReader("username;role\ntestuser1;STUDENT\ntestuser2;TEACHER"), @@ -435,7 +435,7 @@ public class EditionServiceTest { ArgumentCaptor<ParticipantsImportDTO> argumentCaptor = ArgumentCaptor .forClass(ParticipantsImportDTO.class); - verify(editionApi).addParticipantsToEdition(eq(EDITION_ID), argumentCaptor.capture(), anyBoolean()); + verify(editionApi).addParticipantsToEdition(argumentCaptor.capture(), eq(EDITION_ID), anyBoolean()); ParticipantsImportDTO dto = argumentCaptor.getValue(); assertThat(dto.getParticipants().get("testuser1")).isEqualTo(ParticipantsImportDTO.InnerEnum.STUDENT); diff --git a/src/test/java/nl/tudelft/submit/service/ExportServiceTest.java b/src/test/java/nl/tudelft/submit/service/ExportServiceTest.java index 7c4d979ebcc1e1aead66fc9036bec9d17a7c673f..3ffd76a1755f0c7ce5d88cbcf2e96c50efcf18a9 100644 --- a/src/test/java/nl/tudelft/submit/service/ExportServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/ExportServiceTest.java @@ -192,7 +192,7 @@ class ExportServiceTest { .assignment( new AssignmentSummaryDTO().id(ASSIGNMENT_ID + 1).name("assignment2")) .submitter(new PersonSummaryDTO().id(PERSON_ID).username("user1")) - .grades(Collections.emptyList()))); + .grades(Collections.emptySet()))); when(submissionService.getAllSubmissionsForModule(MODULE_ID + 1)).thenReturn(Collections.emptyList()); when(feedbackService.getFeedbackByGrade(GRADE_ID)).thenReturn(Collections.emptyList()); diff --git a/src/test/java/nl/tudelft/submit/service/ModuleDivisionServiceTest.java b/src/test/java/nl/tudelft/submit/service/ModuleDivisionServiceTest.java index 74fd3927219ce868a77bdcb1e86773dc1334b1d4..eb03e8913c2f7646766b48d09f3015657bcf2331 100644 --- a/src/test/java/nl/tudelft/submit/service/ModuleDivisionServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/ModuleDivisionServiceTest.java @@ -93,16 +93,16 @@ class ModuleDivisionServiceTest { void importDivisions() { List<ModuleDivisionCreateDTO> creates = new ArrayList<>(); ModuleDivisionImportDTO dto = new ModuleDivisionImportDTO(creates); - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); divisionService.importDivisions(MODULE_ID, dto); - verify(divisionApi).importDivisions(MODULE_ID, creates, false); + verify(divisionApi).importDivisions(creates, MODULE_ID, false); } @Test void generateOneDivision() { - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())) + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())) .thenReturn(Mono.empty()); when(editionService.getStudents(anyLong())) .thenReturn(List @@ -112,8 +112,7 @@ class ModuleDivisionServiceTest { divisionService.generateOneDivision(MODULE_ID); - verify(divisionApi).importDivisions(MODULE_ID, - List.of(new ModuleDivisionCreateDTO().usernames(List.of("test user"))), false); + verify(divisionApi).importDivisions(List.of(new ModuleDivisionCreateDTO().usernames(List.of("test user"))), MODULE_ID, false); } @Test @@ -134,13 +133,13 @@ class ModuleDivisionServiceTest { new PersonSummaryDTO().username("A2"))), new ModuleDivisionDetailsDTO().people(List.of( new PersonSummaryDTO().username("B1"))))); - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); divisionService.importDivisionsFromModule(123L, MODULE_ID); - verify(divisionApi).importDivisions(MODULE_ID, List.of( + verify(divisionApi).importDivisions(List.of( new ModuleDivisionCreateDTO().usernames(List.of("A1", "A2")), - new ModuleDivisionCreateDTO().usernames(List.of("B1"))), false); + new ModuleDivisionCreateDTO().usernames(List.of("B1"))), MODULE_ID, false); } @Test @@ -156,22 +155,22 @@ class ModuleDivisionServiceTest { @Test void addPersonToDivision() { - when(divisionApi.addPersonToDivision(anyLong(), anyString(), anyBoolean())) + when(divisionApi.addPersonToDivision(anyString(), anyLong(), anyBoolean())) .thenReturn(Mono.empty()); divisionService.addPersonToDivision(DIVISION_ID, USERNAME); - verify(divisionApi).addPersonToDivision(DIVISION_ID, USERNAME, false); + verify(divisionApi).addPersonToDivision(USERNAME, DIVISION_ID, false); } @Test void addPersonToRandomDivision() { - when(divisionApi.addPersonToRandomDivision(anyLong(), anyString(), anyBoolean())) + when(divisionApi.addPersonToRandomDivision(anyString(), anyLong(), anyBoolean())) .thenReturn(Mono.empty()); divisionService.addPersonToRandomDivision(MODULE_ID, USERNAME); - verify(divisionApi).addPersonToRandomDivision(MODULE_ID, USERNAME, false); + verify(divisionApi).addPersonToRandomDivision(USERNAME, MODULE_ID, false); } @ParameterizedTest @@ -193,14 +192,14 @@ class ModuleDivisionServiceTest { when(moduleService.getModuleById(anyLong())) .thenReturn(new ModuleDetailsDTO().edition(new EditionSummaryDTO().id(1L))); - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); List<ModuleDivisionCreateDTO> divs = List.of(new ModuleDivisionCreateDTO() .usernames(List.of(str1, str2, str3))); divisionService.generateDivisions(MODULE_ID, DivisionsGenerateType.NUMBER_OF_DIVISIONS, order, 1); - verify(divisionApi, times(1)).importDivisions(MODULE_ID, divs, false); + verify(divisionApi, times(1)).importDivisions(divs, MODULE_ID, false); } @Test @@ -216,7 +215,7 @@ class ModuleDivisionServiceTest { when(moduleService.getModuleById(anyLong())) .thenReturn(new ModuleDetailsDTO().edition(new EditionSummaryDTO().id(1L))); - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); List<ModuleDivisionCreateDTO> divs = List.of(new ModuleDivisionCreateDTO() .usernames(namelist)); @@ -224,8 +223,8 @@ class ModuleDivisionServiceTest { divisionService.generateDivisions(MODULE_ID, DivisionsGenerateType.NUMBER_OF_DIVISIONS, DivisionsGenerateOrder.RANDOM, 1); - verify(divisionApi, never()).importDivisions(MODULE_ID, divs, false); - verify(divisionApi).importDivisions(eq(MODULE_ID), any(List.class), anyBoolean()); + verify(divisionApi, never()).importDivisions(divs, MODULE_ID, false); + verify(divisionApi).importDivisions(anyList(), eq(MODULE_ID), anyBoolean()); } @Test @@ -241,7 +240,7 @@ class ModuleDivisionServiceTest { when(moduleService.getModuleById(anyLong())) .thenReturn(new ModuleDetailsDTO().edition(new EditionSummaryDTO().id(1L))); - when(divisionApi.importDivisions(anyLong(), anyList(), anyBoolean())).thenReturn(Mono.empty()); + when(divisionApi.importDivisions(anyList(), anyLong(), anyBoolean())).thenReturn(Mono.empty()); List<ModuleDivisionCreateDTO> divs = List.of( new ModuleDivisionCreateDTO().usernames(List.of("user-1", "user-2")), @@ -251,6 +250,6 @@ class ModuleDivisionServiceTest { divisionService.generateDivisions(MODULE_ID, DivisionsGenerateType.DIVISION_CAPACITY, DivisionsGenerateOrder.USERNAME, 2); - verify(divisionApi).importDivisions(MODULE_ID, divs, false); + verify(divisionApi).importDivisions(divs, MODULE_ID, false); } } diff --git a/src/test/java/nl/tudelft/submit/service/ModuleServiceTest.java b/src/test/java/nl/tudelft/submit/service/ModuleServiceTest.java index bd488342163c22b7e85474a9aadde8b4d527712e..cba941cd5320e148eaf29dd405d3da1063c7037d 100644 --- a/src/test/java/nl/tudelft/submit/service/ModuleServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/ModuleServiceTest.java @@ -129,22 +129,22 @@ class ModuleServiceTest { dto.setName("Test Module"); Mono<Long> mono = Mono.just(MODULE_ID); - Mockito.when(moduleApi.patchModule(MODULE_ID, dto)).thenReturn(mono); + Mockito.when(moduleApi.patchModule(dto, MODULE_ID)).thenReturn(mono); moduleService.patchModule(MODULE_ID, dto); - Mockito.verify(moduleApi).patchModule(MODULE_ID, dto); + Mockito.verify(moduleApi).patchModule(dto, MODULE_ID); } @Test void patchModuleWithDivision() { - when(moduleApi.patchModule(anyLong(), any(ModulePatchDTO.class))).thenReturn(Mono.empty()); + when(moduleApi.patchModule(any(ModulePatchDTO.class), anyLong())).thenReturn(Mono.empty()); ModulePatchDTO module = new ModulePatchDTO().name("Name"); moduleService.patchModuleWithDivisions(MODULE_ID, module); - verify(moduleApi).patchModule(eq(MODULE_ID), any(ModulePatchDTO.class)); + verify(moduleApi).patchModule(any(ModulePatchDTO.class), eq(MODULE_ID)); } @Test diff --git a/src/test/java/nl/tudelft/submit/service/RoleServiceTest.java b/src/test/java/nl/tudelft/submit/service/RoleServiceTest.java index 64539c73d350ba4cd3a5c51cad69c4f387a4edd0..4ab3b7aacae99e34160f6f72dc0ea554f5e8ae8a 100644 --- a/src/test/java/nl/tudelft/submit/service/RoleServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/RoleServiceTest.java @@ -164,12 +164,12 @@ class RoleServiceTest { void testPatchRole() { RolePatchDTO patch = new RolePatchDTO(); - when(roleApi.patchRole(anyLong(), anyLong(), any(RolePatchDTO.class))) + when(roleApi.patchRole(any(RolePatchDTO.class), anyLong(), anyLong())) .thenReturn(Mono.just(ROLE_ID_1)); assertThat(service.patchRole(PERSON_ID_1, EDITION_ID, patch)).isEqualTo(ROLE_ID_1); - verify(roleApi).patchRole(PERSON_ID_1, EDITION_ID, patch); // gives unassigned mono instance + verify(roleApi).patchRole(patch, PERSON_ID_1, EDITION_ID); // gives unassigned mono instance } } diff --git a/src/test/java/nl/tudelft/submit/service/StudentGroupServiceTest.java b/src/test/java/nl/tudelft/submit/service/StudentGroupServiceTest.java index bd56694d3426be910e474a0717e53768a7ee0e20..b354b69d675822934fa830048327b067e75bfe6c 100644 --- a/src/test/java/nl/tudelft/submit/service/StudentGroupServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/StudentGroupServiceTest.java @@ -169,33 +169,33 @@ class StudentGroupServiceTest { @Test void patchGroup() { StudentGroupPatchDTO dto = new StudentGroupPatchDTO(); - Mockito.when(groupApi.patchGroup(anyLong(), any(StudentGroupPatchDTO.class))) + Mockito.when(groupApi.patchGroup(any(StudentGroupPatchDTO.class), anyLong())) .thenReturn(Mono.empty()); groupService.patchGroup(GROUP_ID, dto); - Mockito.verify(groupApi).patchGroup(GROUP_ID, dto); + Mockito.verify(groupApi).patchGroup(dto, GROUP_ID); } @Test void generateGroups() { GroupGenerateDTO dto = new GroupGenerateDTO(); - Mockito.when(groupApi.generateGroupsForModule(anyLong(), any(GroupGenerateDTO.class))) + Mockito.when(groupApi.generateGroupsForModule(any(GroupGenerateDTO.class), anyLong())) .thenReturn(Mono.empty()); groupService.generateGroupsForModule(GROUP_ID, dto); - Mockito.verify(groupApi).generateGroupsForModule(GROUP_ID, dto); + Mockito.verify(groupApi).generateGroupsForModule(dto, GROUP_ID); } @Test void allocateGroups() { Integer capacity = 6; - Mockito.when(groupApi.allocateGroupsForModule(anyLong(), anyInt())).thenReturn(Mono.empty()); + Mockito.when(groupApi.allocateGroupsForModule(anyInt(), anyLong())).thenReturn(Mono.empty()); groupService.allocateGroupsForModuleParticipants(GROUP_ID, capacity); - Mockito.verify(groupApi).allocateGroupsForModule(GROUP_ID, capacity); + Mockito.verify(groupApi).allocateGroupsForModule(capacity, GROUP_ID); } @Test @@ -283,16 +283,16 @@ class StudentGroupServiceTest { new StudentGroupSummaryDTO().id(1L).capacity(6), new StudentGroupSummaryDTO().id(2L).capacity(4), new StudentGroupSummaryDTO().id(3L).capacity(2)); - when(groupApi.patchGroup(anyLong(), any(StudentGroupPatchDTO.class))) + when(groupApi.patchGroup(any(StudentGroupPatchDTO.class), anyLong())) .thenReturn(Mono.empty()); when(groupApi.getAllGroupsInModule(MODULE_ID)).thenReturn(Flux.fromIterable(groups)); groupService.changeCapacities(MODULE_ID, newCapacity); verify(groupApi, times(3)).patchGroup(any(), any()); - verify(groupApi).patchGroup(1L, new StudentGroupPatchDTO().capacity(newCapacity)); - verify(groupApi).patchGroup(2L, new StudentGroupPatchDTO().capacity(newCapacity)); - verify(groupApi).patchGroup(3L, new StudentGroupPatchDTO().capacity(newCapacity)); + verify(groupApi).patchGroup(new StudentGroupPatchDTO().capacity(newCapacity), 1L); + verify(groupApi).patchGroup(new StudentGroupPatchDTO().capacity(newCapacity), 2L); + verify(groupApi).patchGroup(new StudentGroupPatchDTO().capacity(newCapacity), 3L); } @Test diff --git a/src/test/java/nl/tudelft/submit/service/grading/GradeServiceTest.java b/src/test/java/nl/tudelft/submit/service/grading/GradeServiceTest.java index cf77edca53a8ddfaefc678798073f83c1f4a8030..feb17eb0ad41dbe7c0eca685585d1643acce0b16 100644 --- a/src/test/java/nl/tudelft/submit/service/grading/GradeServiceTest.java +++ b/src/test/java/nl/tudelft/submit/service/grading/GradeServiceTest.java @@ -17,8 +17,7 @@ */ package nl.tudelft.submit.service.grading; -import static java.util.Collections.emptyList; -import static java.util.Collections.emptyMap; +import static java.util.Collections.*; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; @@ -27,10 +26,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.time.LocalDateTime; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import javax.transaction.Transactional; @@ -410,16 +406,16 @@ public class GradeServiceTest { @Test public void getRelevantGradeReturnsNoneWhenNoGrades() { assertThat(gradeService.getRelevantGrade(List.of(new SubmissionDetailsDTO() - .submissionTime(LocalDateTime.now()).grades(Collections.emptyList())))).isEmpty(); + .submissionTime(LocalDateTime.now()).grades(Collections.emptySet())))).isEmpty(); } @Test public void getRelevantGradeReturnsMaxOfLatestSubmission() { assertThat(gradeService.getRelevantGrade(List.of( new SubmissionDetailsDTO().submissionTime(LocalDateTime.of(2020, 1, 1, 0, 0)) - .grades(List.of(new GradeSummaryDTO().score(10).isScriptGraded(false))), + .grades(Set.of(new GradeSummaryDTO().score(10).isScriptGraded(false))), new SubmissionDetailsDTO().submissionTime(LocalDateTime.of(2020, 1, 2, 0, 0)) - .grades(List.of(new GradeSummaryDTO().score(2).isScriptGraded(false), + .grades(Set.of(new GradeSummaryDTO().score(2).isScriptGraded(false), new GradeSummaryDTO().score(5).isScriptGraded(false)))))) .isPresent() .contains(new GradeSummaryDTO().isScriptGraded(false).score(5)); @@ -429,9 +425,9 @@ public class GradeServiceTest { public void getRelevantGradeReturnsHighestPersonGrade() { assertThat(gradeService.getRelevantGrade(List.of( new SubmissionDetailsDTO().submissionTime(LocalDateTime.of(2020, 1, 1, 0, 0)) - .grades(List.of(new GradeSummaryDTO().score(10).isScriptGraded(false))), + .grades(Set.of(new GradeSummaryDTO().score(10).isScriptGraded(false))), new SubmissionDetailsDTO().submissionTime(LocalDateTime.of(2020, 1, 2, 0, 0)) - .grades(List.of(new GradeSummaryDTO().score(2).isScriptGraded(false), + .grades(Set.of(new GradeSummaryDTO().score(2).isScriptGraded(false), new GradeSummaryDTO().score(5).isScriptGraded(true)))))) .isPresent() .contains(new GradeSummaryDTO().isScriptGraded(false).score(2)); @@ -511,7 +507,7 @@ public class GradeServiceTest { void removeHighestGrade() { when(gradeApi.removeHighestGrade(SUBMISSION_ID)).thenReturn(Mono.empty()); when(submissionCache.getOrThrow(anyLong())).thenReturn(new SubmissionDetailsDTO() - .grades(emptyList())); + .grades(emptySet())); gradeService.removeHighestGrade(SUBMISSION_ID);