use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ConstructorConstraintMappingTest method testProgrammaticAndAnnotationParameterConstraintsAddUp.
@Test
public void testProgrammaticAndAnnotationParameterConstraintsAddUp() throws Exception {
ConstraintMapping mapping = config.createConstraintMapping();
mapping.type(GreetingService.class).constructor(CharSequence.class).parameter(0).constraint(new SizeDef().min(2).max(10));
config.addMapping(mapping);
Constructor<GreetingService> constructor = GreetingService.class.getConstructor(CharSequence.class);
Object[] parameterValues = new Object[] { "" };
ExecutableValidator executableValidator = getConfiguredExecutableValidator();
Set<ConstraintViolation<GreetingService>> violations = executableValidator.validateConstructorParameters(constructor, parameterValues);
assertThat(violations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 1 and 10").withPropertyPath(pathWith().constructor(GreetingService.class).parameter("message", 0)), violationOf(Size.class).withMessage("size must be between 2 and 10").withPropertyPath(pathWith().constructor(GreetingService.class).parameter("message", 0)));
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ConstructorConstraintMappingTest method testMultipleParameterConstraintsAtSameParameter.
@Test
public void testMultipleParameterConstraintsAtSameParameter() throws Exception {
ConstraintMapping mapping = config.createConstraintMapping();
mapping.type(GreetingService.class).constructor(String.class).parameter(0).constraint(new SizeDef().min(1).max(10)).constraint(new SizeDef().min(2).max(10));
config.addMapping(mapping);
Constructor<GreetingService> constructor = GreetingService.class.getConstructor(String.class);
Object[] parameterValues = new Object[] { "" };
ExecutableValidator executableValidator = getConfiguredExecutableValidator();
Set<ConstraintViolation<GreetingService>> violations = executableValidator.validateConstructorParameters(constructor, parameterValues);
assertThat(violations).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 1 and 10").withPropertyPath(pathWith().constructor(GreetingService.class).parameter("message", 0)), violationOf(Size.class).withMessage("size must be between 2 and 10").withPropertyPath(pathWith().constructor(GreetingService.class).parameter("message", 0)));
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ContainerElementTypeConstraintsForParameterXmlMappingTest method canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayTypeParameterWithXmlMapping.
// HV-1428 Container element support is disabled for arrays
@Test(expectedExceptions = ValidationException.class, expectedExceptionsMessageRegExp = "HV000226:.*")
@TestForIssue(jiraKey = "HV-1291")
public void canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayTypeParameterWithXmlMapping() {
Validator validator = getValidator("parameter-canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayType-mapping.xml");
IFishTank fishTank = ValidatorUtil.getValidatingProxy(new FishTank(), validator);
try {
String[][] fishNamesByMonthAsArray = new String[][] { new String[] { "Too Long" } };
fishTank.test7(fishNamesByMonthAsArray);
fail("Expected exception wasn't raised");
} catch (ConstraintViolationException e) {
assertThat(e.getConstraintViolations()).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 0 and 5"));
}
}
use of jakarta.validation.constraints.Size in project hibernate-validator by hibernate.
the class ContainerElementTypeConstraintsForReturnValueXmlMappingTest method canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayTypeReturnValueWithXmlMapping.
// HV-1428 Container element support is disabled for arrays
@Test(expectedExceptions = ValidationException.class, expectedExceptionsMessageRegExp = "HV000226:.*")
@TestForIssue(jiraKey = "HV-1291")
public void canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayTypeReturnValueWithXmlMapping() {
Validator validator = getValidator("returnvalue-canDeclareContainerElementTypeConstraintsForMultiDimensionalArrayType-mapping.xml");
IFishTank fishTank = ValidatorUtil.getValidatingProxy(new FishTank(), validator);
try {
fishTank.test7();
fail("Expected exception wasn't raised");
} catch (ConstraintViolationException e) {
assertThat(e.getConstraintViolations()).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 0 and 5"));
}
}
use of jakarta.validation.constraints.Size in project beanvalidation-tck by eclipse-ee4j.
the class ContainerElementTypeConstraintsForReturnValueXmlMappingTest method canDeclareContainerElementTypeConstraintsForReturnValueWithXmlMapping.
@Test
@SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONTAINERELEMENTCONSTRAINTS, id = "a")
@SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONTAINERELEMENTCONSTRAINTS, id = "b")
@SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONTAINERELEMENTCONSTRAINTS, id = "c")
@SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONTAINERELEMENTCONSTRAINTS, id = "d")
@SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDECLARATIONINXML_CONTAINERELEMENTCONSTRAINTS, id = "g")
public void canDeclareContainerElementTypeConstraintsForReturnValueWithXmlMapping() {
Validator validator = getValidator("returnvalue-canDeclareContainerElementTypeConstraints-mapping.xml");
IFishTank fishTank = TestUtil.getValidatingProxy(new FishTank(), validator);
try {
fishTank.test1();
fail("Expected exception wasn't raised");
} catch (ConstraintViolationException e) {
assertThat(e.getConstraintViolations()).containsOnlyViolations(violationOf(Size.class).withMessage("size must be between 3 and 10"), violationOf(Size.class).withMessage("size must be between 3 and 10"), violationOf(Min.class).withMessage("must be greater than or equal to 1"), violationOf(Min.class).withMessage("must be greater than or equal to 1"));
}
}
Aggregations