From 1e25f7f846c725863a9a35878f315d5a9af5f67b Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 26 Feb 2024 17:35:05 +0100 Subject: [PATCH] OZG-4994 OZG-5068 Add more tests to VorgangControllerTest --- .../alfa/vorgang/VorgangControllerTest.java | 153 +++++++++++------- 1 file changed, 99 insertions(+), 54 deletions(-) diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java index 0490cbdc41..4c237346f0 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java @@ -30,10 +30,15 @@ import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import java.util.List; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ValueSource; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.InjectMocks; @@ -610,48 +615,67 @@ class VorgangControllerTest { @Nested class TestGetAllByUngeleseneNachrichten { - @Test - void shouldCallHandleGetAllRequest() { - doRequest(); + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCallHandleGetAllRequest(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class)); } - @DisplayName("build criteria") - @Nested - class TestBuildCriteria { + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCriteriaHavePage(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); - @Test - void shouldHavePage() { - doRequest(); + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); + } - verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); - } + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCriteriaHaveLimit(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); + + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); + } + + static List<String> nachrichtenValues() { + return List.of(VorgangController.PARAM_NACHRICHTEN_UNGELESENE, "", "dummy"); + } + + @Nested + class WithParamNachrichtenUngelesene { @Test - void shoulHaveLimit() { - doRequest(); + void shouldCriteriaHaveHasUngeleseneNachrichtenTrue() { + doRequestWithNachrichtenParam(VorgangController.PARAM_NACHRICHTEN_UNGELESENE); verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); + assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); } + } - @Test - void shoulHaveHasUngeleseneNachrichten() { - doRequest(); + @Nested + class WithoutParamNachrichtenUngelesene { + + @ParameterizedTest + @ValueSource(strings = {"", "dummy"}) + void shouldCriteriaHaveHasUngeleseneNachrichtenFalse(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); + assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isFalse(); } } @SneakyThrows - private void doRequest() { + private void doRequestWithNachrichtenParam(String paramValue) { mockMvc.perform(get(PATH) .param(VorgangController.PARAM_PAGE, Integer.toString(PAGE)) .param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT)) - .param(VorgangController.PARAM_NACHRICHTEN, VorgangController.PARAM_NACHRICHTEN_UNGELESENE)) + .param(VorgangController.PARAM_NACHRICHTEN, paramValue)) .andExpect(status().isOk()); } } @@ -661,65 +685,86 @@ class VorgangControllerTest { private static final UserId ASSIGNED_TO = UserProfileTestFactory.ID; - @Test - void shouldCallHandleGetAllRequest() { - doRequest(); + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCallHandleGetAllRequest(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class)); } - @DisplayName("build criteria") - @Nested - class TestBuildCriteria { + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCriteriaHavePage(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); - @Test - void shouldHavePage() { - doRequest(); + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); + } - verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); - } + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCriteriaHaveLimit(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); - @Test - void shoulHaveLimit() { - doRequest(); + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); + } - verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); - } + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldCriteriaHaveAssignedTo(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); - @Test - void shoulHaveAssignedTo() { - doRequest(); + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getFilterCriteria().getAssignedTo()).hasValue(ASSIGNED_TO); + } - verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getFilterCriteria().getAssignedTo()).hasValue(ASSIGNED_TO); - } + @ParameterizedTest + @MethodSource("nachrichtenValues") + void shouldSetFilterByAssignedTo(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); + + verify(controller).handleGetAllRequest(criteriaCaptor.capture()); + assertThat(criteriaCaptor.getValue().getFilterCriteria().isFilterByAssignedTo()).isTrue(); + } + + static List<String> nachrichtenValues() { + return List.of(VorgangController.PARAM_NACHRICHTEN_UNGELESENE, "", "dummy"); + } + + @Nested + class WithParamNachrichtenUngelesene { @Test - void shouldSetFilterByAssignedTo() { - doRequest(); + void shouldCriteriaHaveHasUngeleseneNachrichtenTrue() { + doRequestWithNachrichtenParam(VorgangController.PARAM_NACHRICHTEN_UNGELESENE); verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getFilterCriteria().isFilterByAssignedTo()).isTrue(); + assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); } + } - @Test - void shoulHaveHasUngeleseneNachrichten() { - doRequest(); + @Nested + class WithoutParamNachrichtenUngelesene { + + @ParameterizedTest + @ValueSource(strings = {"", "dummy"}) + void shouldCriteriaHaveHasUngeleseneNachrichtenFalse(String nachrichtenValue) { + doRequestWithNachrichtenParam(nachrichtenValue); verify(controller).handleGetAllRequest(criteriaCaptor.capture()); - assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); + assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isFalse(); } } @SneakyThrows - private void doRequest() { + private void doRequestWithNachrichtenParam(String paramValue) { mockMvc.perform(get(PATH) .param(VorgangController.PARAM_PAGE, Integer.toString(PAGE)) .param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT)) .param(VorgangController.PARAM_ASSIGNED_TO, ASSIGNED_TO.toString()) - .param(VorgangController.PARAM_NACHRICHTEN, VorgangController.PARAM_NACHRICHTEN_UNGELESENE)) + .param(VorgangController.PARAM_NACHRICHTEN, paramValue)) .andExpect(status().isOk()); } } -- GitLab