/*
* 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.constraints.composition.validationtarget;
import java.lang.reflect.Method;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.executable.ExecutableValidator;
import org.hibernate.validator.testutil.TestForIssue;
import org.hibernate.validator.testutils.ValidatorUtil;
import org.testng.annotations.Test;
import static org.hibernate.validator.testutil.ConstraintViolationAssert.assertCorrectConstraintTypes;
/**
*
* @author Gunnar Morling
*
*/
public class ValidationTargetOfComposedConstraintTest {
@Test
@TestForIssue(jiraKey = "HV-847")
public void canUseValidationTargetToResolveAmbiguityOfPurelyComposedConstraint() throws Exception {
ExecutableValidator validator = ValidatorUtil.getValidator().forExecutables();
InvoiceService invoiceService = new InvoiceService();
Method method = InvoiceService.class.getMethod( "getInvoiceAmount", String.class );
Object returnValue = 0L;
Set<ConstraintViolation<InvoiceService>> constraintViolations = validator.validateReturnValue(
invoiceService,
method,
returnValue
);
assertCorrectConstraintTypes( constraintViolations, ValidInvoiceAmount.class );
}
}