/* * Hibernate Validator, declare and validate application constraints * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>. */ package org.hibernate.validator.test.internal.engine.valuehandling; import java.util.List; import java.util.Map; import javax.validation.valueextraction.ExtractedValue; import javax.validation.valueextraction.ValueExtractor; import javax.validation.valueextraction.ValueExtractorDefinitionException; import org.hibernate.validator.testutils.ValidatorUtil; import org.testng.annotations.Test; /** * Test the exceptions thrown in case of an invalid {@link ValueExtractor}. * * @author Guillaume Smet */ public class InvalidValueExtractorTest { @Test(expectedExceptions = ValueExtractorDefinitionException.class, expectedExceptionsMessageRegExp = "HV000204.*") public void severalExtractedValuesThrowException() { ValidatorUtil.getConfiguration() .addValueExtractor( new SeveralExtractedValuesValueExtractor() ) .buildValidatorFactory() .getValidator(); } @Test(expectedExceptions = ValueExtractorDefinitionException.class, expectedExceptionsMessageRegExp = "HV000203.*") public void noExtractedValueThrowsException() { ValidatorUtil.getConfiguration() .addValueExtractor( new NoExtractedValueValueExtractor() ) .buildValidatorFactory() .getValidator(); } private class SeveralExtractedValuesValueExtractor implements ValueExtractor<Map<@ExtractedValue ?, @ExtractedValue ?>> { @Override public void extractValues(Map<?, ?> originalValue, ValueReceiver receiver) { throw new IllegalStateException( "May not be called" ); } } private class NoExtractedValueValueExtractor implements ValueExtractor<List<?>> { @Override public void extractValues(List<?> originalValue, ValueReceiver receiver) { throw new IllegalStateException( "May not be called" ); } } }