package org.hibernate.validator.referenceguide.chapter04.resourcebundlelocator; import java.util.Arrays; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.Test; import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; import org.hibernate.validator.resourceloading.AggregateResourceBundleLocator; import org.hibernate.validator.resourceloading.PlatformResourceBundleLocator; import static org.junit.Assert.assertEquals; public class ResourceBundleLocatorTest { @Test public void messagesRetrievedFromSpecificBundle() { //tag::messagesRetrievedFromSpecificBundle[] Validator validator = Validation.byDefaultProvider() .configure() .messageInterpolator( new ResourceBundleMessageInterpolator( new PlatformResourceBundleLocator( "MyMessages" ) ) ) .buildValidatorFactory() .getValidator(); //end::messagesRetrievedFromSpecificBundle[] Set<ConstraintViolation<Car>> violations = validator.validateProperty( new Car(), "licensePlate" ); assertEquals( 1, violations.size() ); assertEquals( "null is not supported", violations.iterator().next().getMessage() ); } @Test public void usingAggregateResourceBundleLocator() { //tag::usingAggregateResourceBundleLocator[] Validator validator = Validation.byDefaultProvider() .configure() .messageInterpolator( new ResourceBundleMessageInterpolator( new AggregateResourceBundleLocator( Arrays.asList( "MyMessages", "MyOtherMessages" ) ) ) ) .buildValidatorFactory() .getValidator(); //end::usingAggregateResourceBundleLocator[] Set<ConstraintViolation<Car>> violations = validator.validateProperty( new Car(), "licensePlate" ); assertEquals( 1, violations.size() ); assertEquals( "null is not supported", violations.iterator().next().getMessage() ); violations = validator.validateProperty( new Car(), "topSpeed" ); assertEquals( 1, violations.size() ); assertEquals( "too high", violations.iterator().next().getMessage() ); } }