From fda86a369408f08b5806c3335e0b658d32db0a87 Mon Sep 17 00:00:00 2001 From: Ruben Backx <r.w.backx@tudelft.nl> Date: Mon, 11 Sep 2023 15:55:07 +0200 Subject: [PATCH] Test demonstration --- .../tudelft/queue/service/RequestService.java | 7 +- .../repository/LabRequestRepositoryTest.java | 66 +++++++++++++++++++ .../queue/service/RequestServiceUnitTest.java | 28 ++++++++ 3 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 src/test/java/nl/tudelft/queue/repository/LabRequestRepositoryTest.java create mode 100644 src/test/java/nl/tudelft/queue/service/RequestServiceUnitTest.java diff --git a/src/main/java/nl/tudelft/queue/service/RequestService.java b/src/main/java/nl/tudelft/queue/service/RequestService.java index 013a04f2c..e9aa7b0cb 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 000000000..cfeb8ad0c --- /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 000000000..0bc0d4b12 --- /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)); + } + +} -- GitLab