diff --git a/src/main/java/nl/tudelft/queue/service/RequestService.java b/src/main/java/nl/tudelft/queue/service/RequestService.java index 013a04f2ce2615a3110a8ba49306e96611e89452..e9aa7b0cb474846d115919788d2f792de3f5c5be 100644 --- a/src/main/java/nl/tudelft/queue/service/RequestService.java +++ b/src/main/java/nl/tudelft/queue/service/RequestService.java @@ -25,6 +25,7 @@ import java.util.stream.Collectors; import javax.transaction.Transactional; +import lombok.Setter; import nl.tudelft.labracore.api.AssignmentControllerApi; import nl.tudelft.labracore.api.ModuleControllerApi; import nl.tudelft.labracore.api.QuestionControllerApi; @@ -90,18 +91,12 @@ public class RequestService { @Autowired private AssignmentControllerApi asApi; - @Autowired - private RoleDTOService roleDTOService; - @Autowired private PersonCacheManager pCache; @Autowired private RoomCacheManager rCache; - @Autowired - private SessionCacheManager sCache; - @Autowired private ModuleControllerApi mApi; diff --git a/src/test/java/nl/tudelft/queue/repository/LabRequestRepositoryTest.java b/src/test/java/nl/tudelft/queue/repository/LabRequestRepositoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..cfeb8ad0c06bc0d3fe0b965f983d088c085127b3 --- /dev/null +++ b/src/test/java/nl/tudelft/queue/repository/LabRequestRepositoryTest.java @@ -0,0 +1,66 @@ +package nl.tudelft.queue.repository; + +import nl.tudelft.queue.model.LabRequest; +import nl.tudelft.queue.model.embeddables.AllowedRequest; +import nl.tudelft.queue.model.enums.CommunicationMethod; +import nl.tudelft.queue.model.enums.Language; +import nl.tudelft.queue.model.enums.RequestType; +import nl.tudelft.queue.model.labs.Lab; +import nl.tudelft.queue.model.labs.RegularLab; +import nl.tudelft.queue.model.labs.SlottedLab; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import test.dev.DevQueueApplication; +import test.nodb.NoDbTestQueueApplication; +import test.test.TestQueueApplication; + +import javax.transaction.Transactional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +@Transactional +@SpringBootTest(classes = NoDbTestQueueApplication.class) +public class LabRequestRepositoryTest { + + @Autowired + private LabRepository labRepository; + @Autowired + private LabRequestRepository labRequestRepository; + + private Lab lab; + + @BeforeEach + void setUp() { + lab = labRepository.save(RegularLab.builder() + .session(1L) + .modules(Set.of(1L)) + .communicationMethod(CommunicationMethod.TA_VISIT_STUDENT) + .allowedRequests(Set.of(AllowedRequest.of(1L, RequestType.QUESTION))) + .build()); + } + + @ParameterizedTest + @CsvSource({"ENGLISH_ONLY", "DUTCH_ONLY", "ANY"}) + void anyLanguagePreferenceMatchesAllLabRequestLanguages(Language lrLanguage) { + LabRequest request = LabRequest.builder() + .requestType(RequestType.QUESTION) + .language(lrLanguage) + .requester(1L) + .studentGroup(1L) + .assignment(1L) + .session(lab) + .build(); + + labRequestRepository.save(request); + + assertThat(labRequestRepository.findAll(labRequestRepository.matchesLanguagePreference(Language.ANY))) + .containsExactly(request); + } + +} diff --git a/src/test/java/nl/tudelft/queue/service/RequestServiceUnitTest.java b/src/test/java/nl/tudelft/queue/service/RequestServiceUnitTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0bc0d4b12607aae1400c2d155e9764f2b50d2a54 --- /dev/null +++ b/src/test/java/nl/tudelft/queue/service/RequestServiceUnitTest.java @@ -0,0 +1,28 @@ +package nl.tudelft.queue.service; + +import nl.tudelft.queue.model.LabRequest; +import nl.tudelft.queue.model.Request; +import nl.tudelft.queue.model.SelectionRequest; +import nl.tudelft.queue.model.embeddables.RequestEventInfo; +import nl.tudelft.queue.model.enums.RequestStatus; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.security.access.AccessDeniedException; + +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.when; + +public class RequestServiceUnitTest { + + private final RequestService requestService = new RequestService(); + + @Test + void rejectSelectedRequestThrowsAccessDeniedException() { + SelectionRequest request = SelectionRequest.builder().eventInfo(RequestEventInfo.builder().status(RequestStatus.SELECTED).build()).build(); + assertThrows(AccessDeniedException.class, () -> requestService.rejectSelectionRequest(request, null, null, null)); + } + +}