package org.hibernate.validator.referenceguide.chapter03.inheritance.returnvalue; import java.lang.reflect.Method; import java.util.Collections; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.ValidatorFactory; import javax.validation.constraints.Size; import javax.validation.executable.ExecutableValidator; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.assertEquals; public class CarTest { private static ExecutableValidator executableValidator; @BeforeClass public static void setUpValidator() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); executableValidator = factory.getValidator().forExecutables(); } @Test public void returnValueConstraintsAddUp() throws Exception { Car object = new Car(); Method method = Car.class.getMethod( "getPassengers" ); Object returnValue = Collections.<Person>emptyList(); Set<ConstraintViolation<Car>> violations = executableValidator.validateReturnValue( object, method, returnValue ); assertEquals( 1, violations.size() ); assertEquals( Size.class, violations.iterator() .next() .getConstraintDescriptor() .getAnnotation() .annotationType() ); } }