diff --git a/src/test/java/de/ozgcloud/admin/common/errorhandling/AdminExceptionHandlerITCase.java b/src/test/java/de/ozgcloud/admin/common/errorhandling/AdminExceptionHandlerITCase.java index ed27fe464a0b60b2f9e2e191c933f15b3e221c97..6b8a2689e678e217b01252c99a57f248680b67d0 100644 --- a/src/test/java/de/ozgcloud/admin/common/errorhandling/AdminExceptionHandlerITCase.java +++ b/src/test/java/de/ozgcloud/admin/common/errorhandling/AdminExceptionHandlerITCase.java @@ -3,12 +3,17 @@ package de.ozgcloud.admin.common.errorhandling; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import java.util.Set; import java.util.stream.Stream; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.ConstraintViolationException; +import jakarta.validation.Validation; +import jakarta.validation.Validator; + import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -18,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; @@ -67,10 +71,6 @@ public class AdminExceptionHandlerITCase { return AdminExceptionHandler.STATUS_BY_EXCEPTION.entrySet().stream().map(kv -> Arguments.of(kv.getKey(), kv.getValue())); } - @SneakyThrows - private ResultActions performGet() { - return mockMvc.perform(get(RootController.PATH)); - } } @Nested @@ -78,11 +78,26 @@ public class AdminExceptionHandlerITCase { @Test @SneakyThrows void shouldHaveInfoInBody() { - var result = mockMvc - .perform(post("/api/test-error").content("{ \"string\" : \"\" }").contentType(MediaType.APPLICATION_JSON).with(csrf())); + when(modelAssembler.toModel(any())).thenAnswer((a) -> { + var validationObject = ValidatedClass.builder().build(); + throw new ConstraintViolationException(getConstraintViolations(validationObject)); + }); + + var result = performGet(); - assertThat(result.andReturn().getResponse().getContentAsString()).contains("validatedClass.string"); + assertThat(result.andReturn().getResponse().getContentAsString()).contains("string: Empty field"); } + + private <T> Set<ConstraintViolation<T>> getConstraintViolations(T object) { + Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); + return validator.validate(object); + } + + } + + @SneakyThrows + private ResultActions performGet() { + return mockMvc.perform(get(RootController.PATH)); } } diff --git a/src/test/java/de/ozgcloud/admin/common/errorhandling/HelperService.java b/src/test/java/de/ozgcloud/admin/common/errorhandling/HelperService.java deleted file mode 100644 index 43847acb229ee1b9d7fb29200fef38da6d170796..0000000000000000000000000000000000000000 --- a/src/test/java/de/ozgcloud/admin/common/errorhandling/HelperService.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.ozgcloud.admin.common.errorhandling; - -import jakarta.validation.Valid; - -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -@Service -@Validated -class HelperService { - - ValidatedClass returnValidObject(@Valid ValidatedClass validatedClass) { - return validatedClass; - } -} diff --git a/src/test/java/de/ozgcloud/admin/common/errorhandling/TestErrorController.java b/src/test/java/de/ozgcloud/admin/common/errorhandling/TestErrorController.java index c467a2ae83c603c698922da0a46065096a9c5815..c10446041aaba51ac761ac4e91ec01d6f9b7bb4b 100644 --- a/src/test/java/de/ozgcloud/admin/common/errorhandling/TestErrorController.java +++ b/src/test/java/de/ozgcloud/admin/common/errorhandling/TestErrorController.java @@ -26,24 +26,18 @@ import java.util.Map; import jakarta.validation.ConstraintViolationException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.rest.webmvc.ResourceNotFoundException; import org.springframework.security.access.AccessDeniedException; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import de.ozgcloud.common.errorhandling.TechnicalException; -import io.micrometer.common.lang.NonNullApi; @RestController @RequestMapping("/api/test-error") class TestErrorController { - @Autowired - private HelperService service; @FunctionalInterface interface ExceptionProducer { @@ -66,9 +60,4 @@ class TestErrorController { Class.forName(errorClassName)).produceException(); } - @PostMapping - public ValidatedClass postMethodName(@RequestBody ValidatedClass object) { - return service.returnValidObject(object); - } - }