/* * 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.money; import javax.money.MonetaryAmount; import javax.validation.ConstraintValidator; import javax.validation.constraints.DecimalMin; import org.javamoney.moneta.Money; import org.testng.annotations.Test; import org.hibernate.validator.internal.constraintvalidators.bv.money.DecimalMinValidatorForMonetaryAmount; import org.hibernate.validator.internal.util.annotationfactory.AnnotationDescriptor; import org.hibernate.validator.internal.util.annotationfactory.AnnotationFactory; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; /** * @author Lukas Niemeier * @author Willi Schönborn */ public class DecimalMinValidatorForMonetaryAmountTest { private final ConstraintValidator<DecimalMin, MonetaryAmount> unit = new DecimalMinValidatorForMonetaryAmount(); @Test public void nullIsValid() { unit.initialize( decimalMin( "0", true ) ); assertTrue( unit.isValid( null, null ) ); } @Test public void invalidIfLess() { unit.initialize( decimalMin( "0", true ) ); assertFalse( unit.isValid( Money.of( -1, "EUR" ), null ) ); } @Test public void validIfGreater() { unit.initialize( decimalMin( "0", true ) ); assertTrue( unit.isValid( Money.of( 1, "EUR" ), null ) ); } @Test public void validIfInclude() { unit.initialize( decimalMin( "0", true ) ); assertTrue( unit.isValid( Money.of( 0, "EUR" ), null ) ); } @Test public void invalidIfNotInclude() { unit.initialize( decimalMin( "0", false ) ); assertFalse( unit.isValid( Money.of( 0, "EUR" ), null ) ); } @Test public void validIfGreaterAndNotIncluded() { unit.initialize( decimalMin( "0", false ) ); assertTrue( unit.isValid( Money.of( 1, "EUR" ), null ) ); } private DecimalMin decimalMin(final String value, final boolean inclusive) { AnnotationDescriptor<DecimalMin> descriptor = new AnnotationDescriptor<>( DecimalMin.class ); descriptor.setValue( "value", value ); descriptor.setValue( "inclusive", inclusive ); return AnnotationFactory.create( descriptor ); } }