Skip to content
Snippets Groups Projects
Commit 1e25f7f8 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-4994 OZG-5068 Add more tests to VorgangControllerTest

parent 61e394ee
No related branches found
No related tags found
No related merge requests found
...@@ -30,10 +30,15 @@ import static org.mockito.Mockito.*; ...@@ -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.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import java.util.List;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; 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.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
...@@ -610,48 +615,67 @@ class VorgangControllerTest { ...@@ -610,48 +615,67 @@ class VorgangControllerTest {
@Nested @Nested
class TestGetAllByUngeleseneNachrichten { class TestGetAllByUngeleseneNachrichten {
@Test @ParameterizedTest
void shouldCallHandleGetAllRequest() { @MethodSource("nachrichtenValues")
doRequest(); void shouldCallHandleGetAllRequest(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class)); verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class));
} }
@DisplayName("build criteria") @ParameterizedTest
@Nested @MethodSource("nachrichtenValues")
class TestBuildCriteria { void shouldCriteriaHavePage(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
@Test
void shouldHavePage() {
doRequest();
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE);
} }
@Test @ParameterizedTest
void shoulHaveLimit() { @MethodSource("nachrichtenValues")
doRequest(); void shouldCriteriaHaveLimit(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT);
} }
static List<String> nachrichtenValues() {
return List.of(VorgangController.PARAM_NACHRICHTEN_UNGELESENE, "", "dummy");
}
@Nested
class WithParamNachrichtenUngelesene {
@Test @Test
void shoulHaveHasUngeleseneNachrichten() { void shouldCriteriaHaveHasUngeleseneNachrichtenTrue() {
doRequest(); doRequestWithNachrichtenParam(VorgangController.PARAM_NACHRICHTEN_UNGELESENE);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue();
} }
} }
@Nested
class WithoutParamNachrichtenUngelesene {
@ParameterizedTest
@ValueSource(strings = {"", "dummy"})
void shouldCriteriaHaveHasUngeleseneNachrichtenFalse(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isFalse();
}
}
@SneakyThrows @SneakyThrows
private void doRequest() { private void doRequestWithNachrichtenParam(String paramValue) {
mockMvc.perform(get(PATH) mockMvc.perform(get(PATH)
.param(VorgangController.PARAM_PAGE, Integer.toString(PAGE)) .param(VorgangController.PARAM_PAGE, Integer.toString(PAGE))
.param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT)) .param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT))
.param(VorgangController.PARAM_NACHRICHTEN, VorgangController.PARAM_NACHRICHTEN_UNGELESENE)) .param(VorgangController.PARAM_NACHRICHTEN, paramValue))
.andExpect(status().isOk()); .andExpect(status().isOk());
} }
} }
...@@ -661,65 +685,86 @@ class VorgangControllerTest { ...@@ -661,65 +685,86 @@ class VorgangControllerTest {
private static final UserId ASSIGNED_TO = UserProfileTestFactory.ID; private static final UserId ASSIGNED_TO = UserProfileTestFactory.ID;
@Test @ParameterizedTest
void shouldCallHandleGetAllRequest() { @MethodSource("nachrichtenValues")
doRequest(); void shouldCallHandleGetAllRequest(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class)); verify(controller).handleGetAllRequest(any(FindVorgaengeHeaderRequestCriteria.class));
} }
@DisplayName("build criteria") @ParameterizedTest
@Nested @MethodSource("nachrichtenValues")
class TestBuildCriteria { void shouldCriteriaHavePage(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
@Test
void shouldHavePage() {
doRequest();
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE); assertThat(criteriaCaptor.getValue().getPage()).isEqualTo(PAGE);
} }
@Test @ParameterizedTest
void shoulHaveLimit() { @MethodSource("nachrichtenValues")
doRequest(); void shouldCriteriaHaveLimit(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT); assertThat(criteriaCaptor.getValue().getLimit()).isEqualTo(LIMIT);
} }
@Test @ParameterizedTest
void shoulHaveAssignedTo() { @MethodSource("nachrichtenValues")
doRequest(); void shouldCriteriaHaveAssignedTo(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().getAssignedTo()).hasValue(ASSIGNED_TO); assertThat(criteriaCaptor.getValue().getFilterCriteria().getAssignedTo()).hasValue(ASSIGNED_TO);
} }
@Test @ParameterizedTest
void shouldSetFilterByAssignedTo() { @MethodSource("nachrichtenValues")
doRequest(); void shouldSetFilterByAssignedTo(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().isFilterByAssignedTo()).isTrue(); assertThat(criteriaCaptor.getValue().getFilterCriteria().isFilterByAssignedTo()).isTrue();
} }
static List<String> nachrichtenValues() {
return List.of(VorgangController.PARAM_NACHRICHTEN_UNGELESENE, "", "dummy");
}
@Nested
class WithParamNachrichtenUngelesene {
@Test @Test
void shoulHaveHasUngeleseneNachrichten() { void shouldCriteriaHaveHasUngeleseneNachrichtenTrue() {
doRequest(); doRequestWithNachrichtenParam(VorgangController.PARAM_NACHRICHTEN_UNGELESENE);
verify(controller).handleGetAllRequest(criteriaCaptor.capture()); verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue(); assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isTrue();
} }
} }
@Nested
class WithoutParamNachrichtenUngelesene {
@ParameterizedTest
@ValueSource(strings = {"", "dummy"})
void shouldCriteriaHaveHasUngeleseneNachrichtenFalse(String nachrichtenValue) {
doRequestWithNachrichtenParam(nachrichtenValue);
verify(controller).handleGetAllRequest(criteriaCaptor.capture());
assertThat(criteriaCaptor.getValue().getFilterCriteria().isHasUngeleseneNachrichten()).isFalse();
}
}
@SneakyThrows @SneakyThrows
private void doRequest() { private void doRequestWithNachrichtenParam(String paramValue) {
mockMvc.perform(get(PATH) mockMvc.perform(get(PATH)
.param(VorgangController.PARAM_PAGE, Integer.toString(PAGE)) .param(VorgangController.PARAM_PAGE, Integer.toString(PAGE))
.param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT)) .param(VorgangController.PARAM_LIMIT, Integer.toString(LIMIT))
.param(VorgangController.PARAM_ASSIGNED_TO, ASSIGNED_TO.toString()) .param(VorgangController.PARAM_ASSIGNED_TO, ASSIGNED_TO.toString())
.param(VorgangController.PARAM_NACHRICHTEN, VorgangController.PARAM_NACHRICHTEN_UNGELESENE)) .param(VorgangController.PARAM_NACHRICHTEN, paramValue))
.andExpect(status().isOk()); .andExpect(status().isOk());
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment