package com.sequenceiq.cloudbreak.controller.validation; import java.io.Serializable; import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.validation.ConstraintTarget; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import javax.validation.Payload; import javax.validation.metadata.ConstraintDescriptor; import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl; import org.hibernate.validator.internal.engine.path.PathImpl; abstract class AbstractValidatorTest { ConstraintValidatorContext.ConstraintViolationBuilder getConstraintViolationBuilder() { return new ConstraintValidatorContextImpl( new ArrayList<>(), null, PathImpl.createRootPath(), new DummyConstraintDescriptor() ).buildConstraintViolationWithTemplate("dummytemplate"); } private class DummyAnnotation implements Annotation { @Override public boolean equals(Object obj) { return false; } @Override public int hashCode() { return 0; } @Override public String toString() { return "dummy"; } @Override public Class<? extends Annotation> annotationType() { return getClass(); } } private class DummyConstraintDescriptor implements ConstraintDescriptor<DummyAnnotation>, Serializable { @Override public DummyAnnotation getAnnotation() { return null; } @Override public String getMessageTemplate() { return ""; } @Override public Set<Class<?>> getGroups() { return new HashSet<>(); } @Override public Set<Class<? extends Payload>> getPayload() { return new HashSet<>(); } @Override public ConstraintTarget getValidationAppliesTo() { return ConstraintTarget.PARAMETERS; } @Override public List<Class<? extends ConstraintValidator<DummyAnnotation, ?>>> getConstraintValidatorClasses() { return new ArrayList<>(); } @Override public Map<String, Object> getAttributes() { return new HashMap<>(); } @Override public Set<ConstraintDescriptor<?>> getComposingConstraints() { return new HashSet<>(); } @Override public boolean isReportAsSingleViolation() { return false; } } }