@Override public List<Class<? extends ConstraintValidator<T, ?>>> getConstraintValidatorClasses() { return wrapped.getConstraintValidatorClasses(); }
@Override public List<Class<? extends ConstraintValidator<T, ?>>> getConstraintValidatorClasses() { return wrapped.getConstraintValidatorClasses(); }
@Override public List<Class<? extends ConstraintValidator<T, ?>>> getConstraintValidatorClasses() { return this.descriptor.getConstraintValidatorClasses(); }
validators = categorizeValidatorsByType(descriptor.getConstraintValidatorClasses()); Validate.notEmpty(validators, "No validator found for constraint: %s", descriptor.getAnnotation().annotationType());
validators = categorizeValidatorsByType(descriptor.getConstraintValidatorClasses()); Validate.notEmpty(validators, "No validator found for constraint: %s", descriptor.getAnnotation().annotationType());
BeanDescriptor beanDesc = DescriptorFactory.INSTANCE.getBeanDescriptor(constrained); for(ConstraintDescriptor<?> descriptor : beanDesc.getConstraintDescriptors()) { foundCandidateValidators.addAll(descriptor.getConstraintValidatorClasses()); foundCandidateValidators.addAll(descriptor.getConstraintValidatorClasses());
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_CONSTRAINTDESCRIPTOR, id = "o") @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDEFINITION, id = "b") @SpecAssertion(section = Sections.XML_MAPPING_CONSTRAINTDEFINITION, id = "e") public <T extends Annotation> void testExcludeExistingValidators() { Configuration<?> config = TestUtil.getConfigurationUnderTest(); config.addMapping( TestUtil.getInputStreamForPath( packageName + mappingFile1 ) ); Validator validator = config.buildValidatorFactory().getValidator(); PropertyDescriptor propDescriptor = validator.getConstraintsForClass( Name.class ) .getConstraintsForProperty( "name" ); Set<ConstraintDescriptor<?>> descriptors = propDescriptor.getConstraintDescriptors(); assertEquals( descriptors.size(), 1, "There should only be one constraint." ); @SuppressWarnings("unchecked") ConstraintDescriptor<T> descriptor = (ConstraintDescriptor<T>) descriptors.iterator().next(); List<Class<? extends ConstraintValidator<T, ?>>> validators = descriptor.getConstraintValidatorClasses(); assertEquals( validators.size(), 0, "No xml defined validator and annotations are ignored -> no validator" ); }
List<Class<? extends ConstraintValidator<T, ?>>> validators = descriptor.getConstraintValidatorClasses();
@Test @SpecAssertions({ @SpecAssertion(section = "7.1.2", id = "b"), @SpecAssertion(section = "7.1.2", id = "e") }) public <T extends Annotation> void testExcludeExistingValidators() { Configuration<?> config = TestUtil.getConfigurationUnderTest(); config.addMapping( TestUtil.getInputStreamForPath( packageName + mappingFile1 ) ); Validator validator = config.buildValidatorFactory().getValidator(); PropertyDescriptor propDescriptor = validator.getConstraintsForClass( Name.class ) .getConstraintsForProperty( "name" ); Set<ConstraintDescriptor<?>> descriptors = propDescriptor.getConstraintDescriptors(); assertEquals( descriptors.size(), 1, "There should only be one constraint." ); @SuppressWarnings("unchecked") ConstraintDescriptor<T> descriptor = ( ConstraintDescriptor<T> ) descriptors.iterator().next(); List<Class<? extends ConstraintValidator<T, ?>>> validators = descriptor.getConstraintValidatorClasses(); assertEquals( validators.size(), 0, "No xml defined validator and annotations are ignored -> no validator" ); }
@Test @SpecAssertions({ @SpecAssertion(section = "7.1.2", id = "c"), @SpecAssertion(section = "7.1.2", id = "d"), @SpecAssertion(section = "7.1.2", id = "e") }) public <T extends Annotation> void testIncludeExistingValidators() { Configuration<?> config = TestUtil.getConfigurationUnderTest(); config.addMapping( TestUtil.getInputStreamForPath( packageName + mappingFile2 ) ); Validator validator = config.buildValidatorFactory().getValidator(); PropertyDescriptor propDescriptor = validator.getConstraintsForClass( Name.class ) .getConstraintsForProperty( "name" ); Set<ConstraintDescriptor<?>> descriptors = propDescriptor.getConstraintDescriptors(); assertEquals( descriptors.size(), 1, "There should only be one constraint." ); @SuppressWarnings("unchecked") ConstraintDescriptor<T> descriptor = ( ConstraintDescriptor<T> ) descriptors.iterator().next(); List<Class<? extends ConstraintValidator<T, ?>>> validators = descriptor.getConstraintValidatorClasses(); assertEquals( validators.size(), 2, "One validator should be defined in annotation and one in xml" ); } }
/** * test validation. * * @param pbean the bean to test * @param pshouldBeOk true if it's expected, that the test brings no validation error * @param pexcpetedValidationClass the validator class that will report an error * @return violation list for additional tests */ public final Set<ConstraintViolation<E>> validationTest(final E pbean, final boolean pshouldBeOk, final String pexcpetedValidationClass) { final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); final Set<ConstraintViolation<E>> cv1 = validator.validate(pbean); if (pshouldBeOk) { Assert.assertTrue("Should have no validation error " + pbean.toString(), cv1.isEmpty()); } else { Assert.assertFalse("Should have a validation error " + pbean.toString(), cv1.isEmpty()); } for (final ConstraintViolation<E> violation : cv1) { Assert.assertEquals("Should be reported by special validator", pexcpetedValidationClass, violation.getConstraintDescriptor().getConstraintValidatorClasses().get(0).getName()); AbstractValidationTest.LOG.debug("Error Message of type " + violation.getConstraintDescriptor().getConstraintValidatorClasses() + " for field \"" + violation.getPropertyPath().toString() + "\" with value \"" + pbean.toString() + "\", message: " + violation.getMessage()); } return cv1; } }
/** * Create a new ConstraintDescriptorImpl instance. * * @param descriptor */ public ConstraintDescriptorImpl(ConstraintDescriptor<T> descriptor) { this(descriptor.getAnnotation(), descriptor.getGroups(), descriptor.getPayload(), descriptor .getConstraintValidatorClasses(), descriptor.getAttributes(), descriptor.getComposingConstraints(), descriptor.isReportAsSingleViolation()); }
/** * test validation. * * @param pbean the bean to test * @param pshouldBeOk true if it's expected, that the test brings no validation error * @param pexcpetedValidationClass the validator class that will report an error * @return violation list for additional tests */ public final Set<ConstraintViolation<E>> validationTest(final E pbean, final boolean pshouldBeOk, final String pexcpetedValidationClass) { final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); final Set<ConstraintViolation<E>> cv1 = validator.validate(pbean); if (pshouldBeOk) { Assert.assertTrue("Should have no validation error " + pbean.toString(), cv1.isEmpty()); } else { Assert.assertFalse("Should have a validation error " + pbean.toString(), cv1.isEmpty()); } for (final ConstraintViolation<E> violation : cv1) { Assert.assertEquals("Should be reported by special validator", pexcpetedValidationClass, violation.getConstraintDescriptor().getConstraintValidatorClasses().get(0).getName()); AbstractValidationTest.LOG.debug("Error Message of type " + violation.getConstraintDescriptor().getConstraintValidatorClasses() + " for field \"" + violation.getPropertyPath().toString() + "\" with value \"" + pbean.toString() + "\", message: " + violation.getMessage()); } return cv1; } }
if (hasMatchingAnnotation(constraint)) { if (!constraint.getConstraintValidatorClasses().isEmpty()) { Class<? extends ConstraintValidator<? extends Annotation, ?>> validatorClass = getValidatorForType(constraint, clazz);
if (hasMatchingAnnotation(constraint)) { if (!constraint.getConstraintValidatorClasses().isEmpty()) { Class<? extends ConstraintValidator<? extends Annotation, ?>> validatorClass = getValidatorForType(constraint, clazz);
if (this.hasMatchingAnnotation(constraint)) { if (!constraint.getConstraintValidatorClasses().isEmpty()) { // NOPMD final Class<? extends ConstraintValidator<? extends Annotation, ?>> validatorClass = getValidatorForType(constraint, clazz);
throws UnexpectedTypeException { List<Class<? extends ConstraintValidator<A, ?>>> constraintValidatorClasses = constraint.getConstraintValidatorClasses(); if (constraintValidatorClasses.isEmpty()) { throw new UnexpectedTypeException("No ConstraintValidator found for "
throws UnexpectedTypeException { List<Class<? extends ConstraintValidator<A, ?>>> constraintValidatorClasses = constraint.getConstraintValidatorClasses(); if (constraintValidatorClasses.isEmpty()) { throw new UnexpectedTypeException("No ConstraintValidator found for "
throws UnexpectedTypeException { final List<Class<? extends ConstraintValidator<A, ?>>> constraintValidatorClasses = constraint.getConstraintValidatorClasses(); if (constraintValidatorClasses.isEmpty()) { throw new UnexpectedTypeException(
sw.print(asLiteral(asArray(constraint.getConstraintValidatorClasses(), new Class[0]))); sw.println(")");