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

OZG-6381 Fix ExceptionControllerITCase

parent 6b242b53
No related branches found
No related tags found
No related merge requests found
...@@ -15,6 +15,7 @@ import jakarta.validation.constraints.NotEmpty; ...@@ -15,6 +15,7 @@ import jakarta.validation.constraints.NotEmpty;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.assertj.core.util.Arrays; import org.assertj.core.util.Arrays;
import org.junit.jupiter.api.BeforeEach;
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.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -45,37 +46,37 @@ class ExceptionControllerITCase { ...@@ -45,37 +46,37 @@ class ExceptionControllerITCase {
@Nested @Nested
class TestConstraintViolationException { class TestConstraintViolationException {
@Test @BeforeEach
@SneakyThrows void setUpException() {
void shouldHaveInvalidFieldNameInResponse() {
when(modelAssembler.toModel(any())).thenAnswer((a) -> { when(modelAssembler.toModel(any())).thenAnswer((a) -> {
throw new ConstraintViolationException(getConstraintViolations("Not Empty")); throw new ConstraintViolationException(getConstraintViolations());
}); });
}
private Set<ConstraintViolation<ValidatedClass>> getConstraintViolations() {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
return validator.validate(ValidatedClass.builder().string(StringUtils.EMPTY).build());
}
@Test
@SneakyThrows
void shouldHaveInvalidFieldNameInResponse() {
var result = performGet(); var result = performGet();
result.andExpect(jsonPath("$.invalidParams[*].name").value("string2")); result.andExpect(jsonPath("$.invalidParams[*].name").value("string"));
} }
@Test @Test
@SneakyThrows @SneakyThrows
void shouldHaveTwoInvalidParamsInResponse() { void shouldHaveInvalidParamsInResponse() {
when(modelAssembler.toModel(any())).thenAnswer((a) -> {
throw new ConstraintViolationException(getConstraintViolations(StringUtils.EMPTY));
});
var result = performGet(); var result = performGet();
result.andExpect(jsonPath("$.invalidParams[*].length()").value(Arrays.asList(new Integer[] { 4, 4 }))); result.andExpect(jsonPath("$.invalidParams[*].length()").value(Arrays.asList(new Integer[] { 4 })));
} }
@Test @Test
@SneakyThrows @SneakyThrows
void shouldHaveMessageInResponse() { void shouldHaveMessageInResponse() {
when(modelAssembler.toModel(any())).thenAnswer((a) -> {
throw new ConstraintViolationException(getConstraintViolations(StringUtils.EMPTY));
});
var result = performGet(); var result = performGet();
result.andExpect(jsonPath("$.invalidParams[0].reason").value("Empty field")); result.andExpect(jsonPath("$.invalidParams[0].reason").value("Empty field"));
...@@ -84,27 +85,16 @@ class ExceptionControllerITCase { ...@@ -84,27 +85,16 @@ class ExceptionControllerITCase {
@Test @Test
@SneakyThrows @SneakyThrows
void shouldHaveValueInResponse() { void shouldHaveValueInResponse() {
when(modelAssembler.toModel(any())).thenAnswer((a) -> {
throw new ConstraintViolationException(getConstraintViolations(StringUtils.EMPTY));
});
var result = performGet(); var result = performGet();
result.andExpect(jsonPath("$.invalidParams[0].value").value("")); result.andExpect(jsonPath("$.invalidParams[0].value").value(""));
} }
private Set<ConstraintViolation<ValidatedClass>> getConstraintViolations(String string) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
return validator.validate(ValidatedClass.builder().string1(string).build());
}
@Getter @Getter
@Builder @Builder
private static class ValidatedClass { private static class ValidatedClass {
@NotEmpty(message = "Empty field") @NotEmpty(message = "Empty field")
private String string1; private String string;
@NotEmpty(message = "Empty field")
private String string2;
} }
@SneakyThrows @SneakyThrows
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment