Java 类org.hibernate.validator.method.MethodConstraintViolation 实例源码
项目:class-guard
文件:MethodValidationInterceptor.java
public Object invoke(MethodInvocation invocation) throws Throwable {
Class[] groups = determineValidationGroups(invocation);
Set<MethodConstraintViolation<Object>> result = this.validator.validateAllParameters(
invocation.getThis(), invocation.getMethod(), invocation.getArguments(), groups);
if (!result.isEmpty()) {
throw new MethodConstraintViolationException(result);
}
Object returnValue = invocation.proceed();
result = this.validator.validateReturnValue(
invocation.getThis(), invocation.getMethod(), returnValue, groups);
if (!result.isEmpty()) {
throw new MethodConstraintViolationException(result);
}
return returnValue;
}
项目:common-resteasy
文件:MethodConstraintViolationExceptionMapperTest.java
@Test
public void testGetJsonString() throws Exception {
MethodConstraintViolationException oopsie = mock(MethodConstraintViolationException.class);
Set<MethodConstraintViolation<?>> violations = new HashSet<MethodConstraintViolation<?>>(
(List<MethodConstraintViolation<?>>) (List) Arrays.asList(
withFields(MethodConstraintViolation.class,
"message", "A problem."
),
withFields(MethodConstraintViolation.class,
"message", "Something else."
)
));
when(oopsie.getConstraintViolations()).thenReturn(violations);
Response res = mapper.toResponse(oopsie);
assertThat(res.getStatus()).isEqualTo(Response.Status.PRECONDITION_FAILED.getStatusCode());
// beide volgende resultaten zijn mogelijk, dus test moet een beetje anders
//assertThat(res.getEntity()).isEqualTo("{ \"error\" : {\"\":[\"Something else.\",\"A problem.\"]}}");
//assertThat(res.getEntity()).isEqualTo("{ \"error\" : {\"\":[\"A problem.\",\"Something else.\"]}}");
assertThat((String) res.getEntity()).startsWith("{ \"error\" : {\"\":[");
assertThat((String) res.getEntity()).endsWith("]}}");
assertThat((String) res.getEntity()).containsOnlyOnce("\"A problem.\"");
assertThat((String) res.getEntity()).containsOnlyOnce("\"Something else.\"");
verify(preProcessLoggingInterceptor).postProcessError(oopsie,
"Applicatie keerde terug met een (verwachtte) ConstraintViolation:");
}
项目:arquillian-tomee-hibernate
文件:DomainValidationExceptionMapper.java
@Override
public Response toResponse(DomainValidationException exception) {
ResourceBase.ResourceBaseBuilder<?> resourseBaseBuilder = ResourceBase.resourceBaseBuilder();
for (MethodConstraintViolation<Object> violation : exception.getConstraintViolations()) {
resourseBaseBuilder.error(null, violation.getParameterName(), violation.getMessage());
}
return Response
.status(400)
.entity(resourseBaseBuilder.build())
.type(MediaType.APPLICATION_JSON_TYPE)
.build();
}
项目:arquillian-tomee-hibernate
文件:BeanValidationInterceptor.java
@AroundInvoke
public Object interceptAndValidate(InvocationContext invocationContext) throws Exception {
Set<MethodConstraintViolation<Object>> constraintViolations = methodValidator.validateAllParameters(invocationContext.getTarget(), invocationContext.getMethod(), invocationContext.getParameters());
if(constraintViolations.isEmpty()){
return invocationContext.proceed();
}
throw new DomainValidationException(invocationContext.getMethod().getDeclaringClass(), invocationContext.getMethod(), constraintViolations);
}
项目:arquillian-tomee-hibernate
文件:DomainValidationException.java
public DomainValidationException(Class<?> targetClass, Method targetMethod, Set<MethodConstraintViolation<Object>> constraintViolations) {
this.targetClass = targetClass;
this.targetMethod = targetMethod;
this.constraintViolations = constraintViolations;
}
项目:arquillian-tomee-hibernate
文件:DomainValidationException.java
public Set<MethodConstraintViolation<Object>> getConstraintViolations() {
return constraintViolations;
}