package io.dropwizard.jersey.validation; import io.dropwizard.jersey.params.IntParam; import io.dropwizard.jersey.params.NonEmptyStringParam; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.valuehandling.UnwrapValidatedValue; import org.junit.Test; import javax.validation.ConstraintViolation; import javax.validation.Validator; import javax.validation.constraints.Min; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; public class ParamValidatorUnwrapperTest { public static class Example { @Min(3) @UnwrapValidatedValue public IntParam inter = new IntParam("4"); @Length(max = 3) @UnwrapValidatedValue public NonEmptyStringParam name = new NonEmptyStringParam("a"); } private final Validator validator = Validators.newValidator(); @Test public void succeedsWithAllGoodData() { final Example example = new Example(); final Set<ConstraintViolation<Example>> validate = validator.validate(example); assertThat(validate).isEmpty(); } @Test public void failsWithInvalidIntParam() { final Example example = new Example(); example.inter = new IntParam("2"); final Set<ConstraintViolation<Example>> validate = validator.validate(example); assertThat(validate).hasSize(1); } @Test public void failsWithInvalidNonEmptyStringParam() { final Example example = new Example(); example.name = new NonEmptyStringParam("hello"); final Set<ConstraintViolation<Example>> validate = validator.validate(example); assertThat(validate).hasSize(1); } }