Search in sources :

Example 1 with Path

use of jakarta.validation.Path in project graphql-java-extended-validation by graphql-java.

the class ResourceBundleMessageInterpolator method buildHibernateContext.

@SuppressWarnings("ConstantConditions")
private MessageInterpolatorContext buildHibernateContext(Map<String, Object> messageParams, ValidationEnvironment validationEnvironment) {
    Object validatedValue = validationEnvironment.getValidatedValue();
    ConstraintAnnotationDescriptor<BridgeAnnotation> annotationDescriptor = new ConstraintAnnotationDescriptor.Builder<>(BridgeAnnotation.class).build();
    ConstraintDescriptorImpl<BridgeAnnotation> constraintDescriptor = new ConstraintDescriptorImpl<>(ConstraintHelper.forAllBuiltinConstraints(), null, annotationDescriptor, ConstraintLocationKind.FIELD, ConstraintType.GENERIC);
    Map<String, Object> expressionVariables = StandardELVariables.standardELVars(validationEnvironment);
    Class<?> rootBeanType = null;
    Path propertyPath = null;
    return new MessageInterpolatorContext(constraintDescriptor, validatedValue, rootBeanType, propertyPath, messageParams, expressionVariables, ExpressionLanguageFeatureLevel.BEAN_PROPERTIES, true);
}
Also used : Path(jakarta.validation.Path) ResultPath(graphql.execution.ResultPath) MessageInterpolatorContext(org.hibernate.validator.internal.engine.MessageInterpolatorContext) ConstraintAnnotationDescriptor(org.hibernate.validator.internal.util.annotation.ConstraintAnnotationDescriptor) ConstraintDescriptorImpl(org.hibernate.validator.internal.metadata.descriptor.ConstraintDescriptorImpl)

Example 2 with Path

use of jakarta.validation.Path in project hibernate-validator by hibernate.

the class ValidatorImpl method isCascadeRequired.

private boolean isCascadeRequired(BaseBeanValidationContext<?> validationContext, Object traversableObject, PathImpl path, ConstraintLocationKind constraintLocationKind) {
    if (needToCallTraversableResolver(path, constraintLocationKind)) {
        return true;
    }
    boolean isReachable = isReachable(validationContext, traversableObject, path, constraintLocationKind);
    if (!isReachable) {
        return false;
    }
    Path pathToObject = PathImpl.createCopyWithoutLeafNode(path);
    try {
        return validationContext.getTraversableResolver().isCascadable(traversableObject, path.getLeafNode(), validationContext.getRootBeanClass(), pathToObject, constraintLocationKind.getElementType());
    } catch (RuntimeException e) {
        throw LOG.getErrorDuringCallOfTraversableResolverIsCascadableException(e);
    }
}
Also used : Path(jakarta.validation.Path)

Example 3 with Path

use of jakarta.validation.Path in project hibernate-validator by hibernate.

the class MessageInterpolatorContextTest method testGetPropertyPath.

@Test
@TestForIssue(jiraKey = "HV-1657")
public void testGetPropertyPath() {
    Path pathMock = createMock(Path.class);
    MessageInterpolator.Context context = new MessageInterpolatorContext(null, null, null, pathMock, Collections.<String, Object>emptyMap(), Collections.<String, Object>emptyMap(), ExpressionLanguageFeatureLevel.BEAN_METHODS, false);
    assertSame(context.unwrap(HibernateMessageInterpolatorContext.class).getPropertyPath(), pathMock);
}
Also used : Path(jakarta.validation.Path) Context(jakarta.validation.MessageInterpolator.Context) MessageInterpolatorContext(org.hibernate.validator.internal.engine.MessageInterpolatorContext) HibernateMessageInterpolatorContext(org.hibernate.validator.messageinterpolation.HibernateMessageInterpolatorContext) ResourceBundleMessageInterpolator(org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator) MessageInterpolator(jakarta.validation.MessageInterpolator) Test(org.testng.annotations.Test) BeforeTest(org.testng.annotations.BeforeTest) TestForIssue(org.hibernate.validator.testutil.TestForIssue)

Example 4 with Path

use of jakarta.validation.Path in project hibernate-validator by hibernate.

the class NodeImplTest method testValidateCustomClassConstraint.

@Test
public void testValidateCustomClassConstraint() {
    C c = new C();
    Set<ConstraintViolation<C>> constraintViolations = validator.validate(c);
    assertThat(constraintViolations).containsOnlyViolations(violationOf(CustomConstraint.class).withPropertyPath(pathWith().bean()));
    Path path = constraintViolations.iterator().next().getPropertyPath();
    Iterator<Path.Node> nodeIterator = path.iterator();
    Path.Node node = nodeIterator.next();
    assertEquals(node.getKind(), ElementKind.BEAN, "unexpected node kind");
}
Also used : Path(jakarta.validation.Path) ConstraintViolation(jakarta.validation.ConstraintViolation) PropertyNode(org.hibernate.validator.path.PropertyNode) ContainerElementNode(org.hibernate.validator.path.ContainerElementNode) Test(org.testng.annotations.Test)

Example 5 with Path

use of jakarta.validation.Path in project hibernate-validator by hibernate.

the class NodeImplTest method testContainerElementNodeGetValueForMap.

@Test
@TestForIssue(jiraKey = "HV-1419")
public void testContainerElementNodeGetValueForMap() {
    Validator validator = ValidatorUtil.getConfiguration().addValueExtractor(new CustomContainerValueExtractor()).buildValidatorFactory().getValidator();
    BuildingWithContainerElementConstraints building = new BuildingWithContainerElementConstraints();
    building.managers.put("main", "Ron");
    building.managers.put("stand-in", "Ronnie");
    Set<ConstraintViolation<BuildingWithContainerElementConstraints>> constraintViolations = validator.validate(building);
    assertThat(constraintViolations).containsOnlyViolations(violationOf(Size.class).withPropertyPath(pathWith().property("managers").containerElement("<map value>", true, "main", null, Map.class, 1)));
    Path path = constraintViolations.iterator().next().getPropertyPath();
    Iterator<Path.Node> nodeIterator = path.iterator();
    Path.Node node = nodeIterator.next();
    assertEquals(node.getKind(), ElementKind.PROPERTY, "unexpected node kind");
    node = nodeIterator.next();
    assertEquals(node.getKind(), ElementKind.CONTAINER_ELEMENT, "unexpected node kind");
    assertEquals(node.as(ContainerElementNode.class).getValue(), "Ron");
    assertFalse(nodeIterator.hasNext());
}
Also used : Path(jakarta.validation.Path) ConstraintViolation(jakarta.validation.ConstraintViolation) PropertyNode(org.hibernate.validator.path.PropertyNode) ContainerElementNode(org.hibernate.validator.path.ContainerElementNode) Validator(jakarta.validation.Validator) ConstraintValidator(jakarta.validation.ConstraintValidator) ValidatorUtil.getValidator(org.hibernate.validator.testutils.ValidatorUtil.getValidator) Test(org.testng.annotations.Test) TestForIssue(org.hibernate.validator.testutil.TestForIssue)

Aggregations

Path (jakarta.validation.Path)48 Test (org.testng.annotations.Test)38 ConstraintViolation (jakarta.validation.ConstraintViolation)35 ExecutableValidator (jakarta.validation.executable.ExecutableValidator)20 Validator (jakarta.validation.Validator)19 ValidatorUtil.getValidator (org.hibernate.validator.testutils.ValidatorUtil.getValidator)17 PropertyNode (org.hibernate.validator.path.PropertyNode)16 ContainerElementNode (org.hibernate.validator.path.ContainerElementNode)15 TestForIssue (org.hibernate.validator.testutil.TestForIssue)6 ConstraintValidator (jakarta.validation.ConstraintValidator)5 Method (java.lang.reflect.Method)5 HashMap (java.util.HashMap)5 NotNull (jakarta.validation.constraints.NotNull)4 Min (jakarta.validation.constraints.Min)2 NotBlank (jakarta.validation.constraints.NotBlank)2 Size (jakarta.validation.constraints.Size)2 List (java.util.List)2 MessageInterpolatorContext (org.hibernate.validator.internal.engine.MessageInterpolatorContext)2 InvalidPluginConfigurationException (com.amazon.dataprepper.model.plugin.InvalidPluginConfigurationException)1 ResultPath (graphql.execution.ResultPath)1