diff --git a/src/test/java/de/ozgcloud/admin/common/errorhandling/ExceptionControllerITCase.java b/src/test/java/de/ozgcloud/admin/common/errorhandling/ExceptionControllerITCase.java index 9ba9d27bacdb1eccf4fe076f0bc556578ff43c40..18880e1718ab14fcbddfe5663d8a6968740fce20 100644 --- a/src/test/java/de/ozgcloud/admin/common/errorhandling/ExceptionControllerITCase.java +++ b/src/test/java/de/ozgcloud/admin/common/errorhandling/ExceptionControllerITCase.java @@ -1,7 +1,6 @@ package de.ozgcloud.admin.common.errorhandling; -import static org.hamcrest.Matchers.*; -import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -15,7 +14,8 @@ import jakarta.validation.Validation; import jakarta.validation.Validator; import jakarta.validation.constraints.NotEmpty; -import org.junit.jupiter.api.BeforeEach; +import org.apache.commons.lang3.StringUtils; +import org.assertj.core.util.Arrays; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -79,34 +79,45 @@ class ExceptionControllerITCase { @Nested class TestConstraintViolationException { - - @BeforeEach - void mockModelAssemblerForException() { + @Test + @SneakyThrows + void shouldHaveInvalidFieldNameInResponse() { when(modelAssembler.toModel(any())).thenAnswer((a) -> { - throw new ConstraintViolationException(getConstraintViolations()); + throw new ConstraintViolationException(getConstraintViolations("Not Empty")); }); + var result = performGet(); + + result.andExpect(jsonPath("$.invalid-params[*].name").value("string2")); } @Test @SneakyThrows - void shouldHaveFailedFieldNamesInResponse() { + void shouldHaveTwoInvalidParamsInResponse() { + when(modelAssembler.toModel(any())).thenAnswer((a) -> { + throw new ConstraintViolationException(getConstraintViolations(StringUtils.EMPTY)); + }); + var result = performGet(); - result.andExpect(jsonPath("$.invalid-params[*].name").value(containsInAnyOrder("string1", "string2"))); + result.andExpect(jsonPath("$.invalid-params[*].length()").value(Arrays.asList(new Integer[] { 2, 2 }))); } @Test @SneakyThrows void shouldHaveMessageInResponse() { + when(modelAssembler.toModel(any())).thenAnswer((a) -> { + throw new ConstraintViolationException(getConstraintViolations(StringUtils.EMPTY)); + }); + var result = performGet(); result.andExpect(jsonPath("$.invalid-params[0].reason").value("Empty field")); } - private Set<ConstraintViolation<ValidatedClass>> getConstraintViolations() { + private Set<ConstraintViolation<ValidatedClass>> getConstraintViolations(String string) { Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); - return validator.validate(ValidatedClass.builder().build()); + return validator.validate(ValidatedClass.builder().string1(string).build()); } @Getter