Provide access to underlying ConstraintViolation
Closes gh-33025
This commit is contained in:
@@ -22,6 +22,7 @@ import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.Max;
|
||||
import jakarta.validation.constraints.Min;
|
||||
@@ -99,7 +100,7 @@ class MethodValidationAdapterTests {
|
||||
default message [must not be blank]"""));
|
||||
|
||||
assertValueResult(ex.getValueResults().get(0), 2, 3, List.of("""
|
||||
org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
org.springframework.validation.beanvalidation.MethodValidationAdapter$ViolationMessageSourceResolvable: \
|
||||
codes [Max.myService#addStudent.degrees,Max.degrees,Max.int,Max]; \
|
||||
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
codes [myService#addStudent.degrees,degrees]; arguments []; default message [degrees],2]; \
|
||||
@@ -136,7 +137,7 @@ class MethodValidationAdapterTests {
|
||||
assertThat(ex.getAllValidationResults()).hasSize(1);
|
||||
|
||||
assertValueResult(ex.getValueResults().get(0), -1, 4, List.of("""
|
||||
org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
org.springframework.validation.beanvalidation.MethodValidationAdapter$ViolationMessageSourceResolvable: \
|
||||
codes [Min.myService#getIntValue,Min,Min.int]; \
|
||||
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
codes [myService#getIntValue]; arguments []; default message [],5]; \
|
||||
@@ -204,7 +205,7 @@ class MethodValidationAdapterTests {
|
||||
testArgs(target, method, new Object[] {List.of(" ")}, ex -> {
|
||||
assertThat(ex.getAllValidationResults()).hasSize(1);
|
||||
assertValueResult(ex.getValueResults().get(0), 0, " ", List.of("""
|
||||
org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
org.springframework.validation.beanvalidation.MethodValidationAdapter$ViolationMessageSourceResolvable: \
|
||||
codes [NotBlank.myService#addHobbies.hobbies,NotBlank.hobbies,NotBlank.java.util.List,NotBlank]; \
|
||||
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
codes [myService#addHobbies.hobbies,hobbies]; \
|
||||
@@ -220,7 +221,7 @@ class MethodValidationAdapterTests {
|
||||
testArgs(target, method, new Object[] {Set.of("test", " ")}, ex -> {
|
||||
assertThat(ex.getAllValidationResults()).hasSize(1);
|
||||
assertValueResult(ex.getValueResults().get(0), 0, Set.of("test", " "), List.of("""
|
||||
org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
org.springframework.validation.beanvalidation.MethodValidationAdapter$ViolationMessageSourceResolvable: \
|
||||
codes [NotBlank.myService#addUniqueHobbies.hobbies,NotBlank.hobbies,NotBlank.java.util.Set,NotBlank]; \
|
||||
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: \
|
||||
codes [myService#addUniqueHobbies.hobbies,hobbies]; \
|
||||
@@ -254,9 +255,14 @@ class MethodValidationAdapterTests {
|
||||
|
||||
assertThat(result.getMethodParameter().getParameterIndex()).isEqualTo(parameterIndex);
|
||||
assertThat(result.getArgument()).isEqualTo(argument);
|
||||
assertThat(result.getResolvableErrors())
|
||||
|
||||
List<MessageSourceResolvable> resolvableErrors = result.getResolvableErrors();
|
||||
assertThat(resolvableErrors)
|
||||
.extracting(MessageSourceResolvable::toString)
|
||||
.containsExactlyInAnyOrderElementsOf(errors);
|
||||
|
||||
resolvableErrors.forEach(error ->
|
||||
assertThat(result.unwrap(error, ConstraintViolation.class)).isNotNull());
|
||||
}
|
||||
|
||||
private static Method getMethod(Object target, String methodName) {
|
||||
|
||||
Reference in New Issue
Block a user