Package org.hibernate.validator.referenceguide.chapter11.constraintdefinition

Source Code of org.hibernate.validator.referenceguide.chapter11.constraintdefinition.CarTest

package org.hibernate.validator.referenceguide.chapter11.constraintdefinition;

import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;

import org.junit.BeforeClass;
import org.junit.Test;

import org.hibernate.validator.HibernateValidator;
import org.hibernate.validator.HibernateValidatorConfiguration;
import org.hibernate.validator.spi.constraintdefinition.ConstraintDefinitionContributor;

import static org.junit.Assert.assertEquals;

public class CarTest {

  private static Validator validator;

  public static class MyConstraintDefinitionContributor
      implements ConstraintDefinitionContributor {

    @Override
    public void collectConstraintDefinitions(ConstraintDefinitionBuilder builder) {
      builder.constraint( ValidPassengerCount.class )
          .validatedBy( ValidPassengerCountValidator.class );
    }
  }

  @BeforeClass
  public static void setUpValidator() {

    HibernateValidatorConfiguration configuration = Validation
        .byProvider( HibernateValidator.class )
        .configure();

    ConstraintDefinitionContributor contributor = new MyConstraintDefinitionContributor();
    configuration.addConstraintDefinitionContributor( contributor );

    validator = configuration.buildValidatorFactory().getValidator();
  }

  @Test
  public void testProgrammaticRegistrationOfConstraintValidator() throws Exception {
    Car car = new Car( 2 );
    car.addPassenger( new Person() );
    car.addPassenger( new Person() );
    car.addPassenger( new Person() );
    Set<ConstraintViolation<Car>> violations = validator.validate( car );

    assertEquals( 1, violations.size() );
  }
}
TOP

Related Classes of org.hibernate.validator.referenceguide.chapter11.constraintdefinition.CarTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.