/*
* 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.constraintvalidators.bv;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import org.hibernate.validator.internal.constraintvalidators.bv.number.bound.AbstractMaxValidator;
import org.hibernate.validator.internal.constraintvalidators.bv.number.bound.MinValidatorForNumber;
import org.hibernate.validator.testutils.ValidatorUtil;
import org.testng.annotations.Test;
import static org.hibernate.validator.testutil.ConstraintViolationAssert.assertCorrectConstraintTypes;
import static org.hibernate.validator.testutil.ConstraintViolationAssert.assertNumberOfViolations;
/**
* Check correct behavior of {@link MinValidatorForNumber} and
* {@link AbstractMaxValidator} on boundary values.
* <p/>
* The chosen numbers: 9223372036854775806l and 9223372036854775807l cast to
* the same double value.
*
* @author Carlos Vara
* @author Hardy Ferentschik
*/
public class MinMaxValidatorBoundaryTest {
@Min(value = 9223372036854775807L)
public long min;
@Max(value = 9223372036854775806L)
public long max;
@Test
public void testMinBoundaryValue() {
Validator validator = ValidatorUtil.getValidator();
this.min = 9223372036854775806L;
this.max = 0L;
// Current min value is smaller, should fail, but it doesn't
Set<ConstraintViolation<MinMaxValidatorBoundaryTest>> constraintViolations = validator.validate( this );
assertNumberOfViolations( constraintViolations, 1 );
assertCorrectConstraintTypes( constraintViolations, Min.class );
}
@Test
public void testMaxBoundaryValue() {
Validator validator = ValidatorUtil.getValidator();
this.min = Long.MAX_VALUE;
this.max = 9223372036854775807L;
// Current max value is bigger, should fail, but it doesn't
Set<ConstraintViolation<MinMaxValidatorBoundaryTest>> constraintViolations = validator.validate( this );
assertNumberOfViolations( constraintViolations, 1 );
assertCorrectConstraintTypes( constraintViolations, Max.class );
}
}