下面列出了javax.validation.ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext#javax.validation.ConstraintValidatorContext.ConstraintViolationBuilder 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public boolean isValid(final HelperBean bean, final ConstraintValidatorContext context) {
context.disableDefaultConstraintViolation();
// build a custom property path
ConstraintViolationBuilder builder =
context.buildConstraintViolationWithTemplate(getEscapeHelper().stripJavaEl(bean.getMessage()));
NodeBuilderCustomizableContext nodeBuilder = null;
for (String part : bean.getPath().split("\\.")) {
if (nodeBuilder == null) {
nodeBuilder = builder.addPropertyNode(part);
}
else {
nodeBuilder = nodeBuilder.addPropertyNode(part);
}
}
if (nodeBuilder != null) {
nodeBuilder.addConstraintViolation();
}
return false;
}
@Before
public void onSetUp() {
eitherServerConfigsOrServerValidator = new EitherServerConfigsOrServerValidator();
constraintContext = mock(ConstraintValidatorContext.class);
ConstraintViolationBuilder constraintViolationBuilder = mock(ConstraintValidatorContext.ConstraintViolationBuilder.class);
when(constraintContext.buildConstraintViolationWithTemplate(anyString())).thenReturn(constraintViolationBuilder);
}
@Test
public void shouldAscertainPropertyUniqueness() {
final HibernateConstraintValidatorContext context = mock(HibernateConstraintValidatorContext.class);
when(context.unwrap(HibernateConstraintValidatorContext.class)).thenReturn(context);
when(context.addExpressionVariable(eq("nonUnique"), anyString())).thenReturn(context);
when(context.getDefaultConstraintMessageTemplate()).thenReturn("template");
final ConstraintViolationBuilder builder = mock(ConstraintViolationBuilder.class);
when(context.buildConstraintViolationWithTemplate("template")).thenReturn(builder);
when(builder.addPropertyNode(anyString())).thenReturn(mock(NodeBuilderCustomizableContext.class));
assertThat(validator.isValid(connection, context)).isEqualTo(validity);
}
ConstraintViolationBuilder getConstraintViolationBuilder() {
return new ConstraintValidatorContextImpl(null,
PathImpl.createRootPath(),
new DummyConstraintDescriptor(),
null
).buildConstraintViolationWithTemplate("dummytemplate");
}
@Before
public void setupMocks() {
constraintViolationBuilder = mock(ConstraintValidatorContext.ConstraintViolationBuilder.class);
nodeBuilderCustomizableContext =
mock(ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext.class);
validatorContext = mock(ConstraintValidatorContext.class);
when(validatorContext.buildConstraintViolationWithTemplate(any())).thenReturn(constraintViolationBuilder);
when(constraintViolationBuilder.addPropertyNode(any())).thenReturn(nodeBuilderCustomizableContext);
when(nodeBuilderCustomizableContext.addConstraintViolation()).thenReturn(validatorContext);
doNothing().when(validatorContext).disableDefaultConstraintViolation();
}
@Test
public void destinationExistsPolicyFail() throws IOException {
ConstraintValidatorContext context = mock(ConstraintValidatorContext.class);
ConstraintViolationBuilder builder = mock(ConstraintViolationBuilder.class);
when(context.buildConstraintViolationWithTemplate(anyString())).thenReturn(builder);
SetMetadataParameters params = new SetMetadataParameters();
params.setOutput(new FileTaskOutput(folder.newFile()));
params.setExistingOutputPolicy(ExistingOutputPolicy.FAIL);
assertFalse(victim.isValid(params, context));
verify(context).buildConstraintViolationWithTemplate(contains("File destination already exists"));
}
@Test
public void destinationExistsPolicySkip() throws IOException {
ConstraintValidatorContext context = mock(ConstraintValidatorContext.class);
ConstraintViolationBuilder builder = mock(ConstraintViolationBuilder.class);
when(context.buildConstraintViolationWithTemplate(anyString())).thenReturn(builder);
SetMetadataParameters params = new SetMetadataParameters();
params.setOutput(new FileTaskOutput(folder.newFile()));
params.setExistingOutputPolicy(ExistingOutputPolicy.SKIP);
assertFalse(victim.isValid(params, context));
verify(context).buildConstraintViolationWithTemplate(contains("File destination already exists"));
}
@Test
public void testInvalidValue() {
ConstraintValidatorContext context = mock(ConstraintValidatorContext.class);
ConstraintViolationBuilder builder = mock(ConstraintViolationBuilder.class);
when(context.buildConstraintViolationWithTemplate(anyString())).thenReturn(builder);
NodeBuilderDefinedContext nodeBuilderContext = mock(NodeBuilderDefinedContext.class);
when(builder.addNode(anyString())).thenReturn(nodeBuilderContext);
when(params.getVersion()).thenReturn(PdfVersion.VERSION_1_2);
when(params.getMinRequiredPdfVersion()).thenReturn(PdfVersion.VERSION_1_5);
assertFalse(victim.isValid(params, context));
verify(context).buildConstraintViolationWithTemplate(anyString());
}