Skip to content

Instantly share code, notes, and snippets.

@dtelaroli
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dtelaroli/5540faeb9aa6b89d4a82 to your computer and use it in GitHub Desktop.
Save dtelaroli/5540faeb9aa6b89d4a82 to your computer and use it in GitHub Desktop.
VRaptor MockValidator
@Test
public void shouldRedirectIfInvalid() {
ModelImpl model = new ModelImpl();
model.setId(1L);
controller.update(model);
assertThat(validator.used(), equalTo(true));
}
class CustomMockValidator extends MockValidator {
private javax.validation.Validator bvalidator;
private boolean enabled = true;
private boolean used;
public CustomMockValidator() {
bvalidator = Validation.buildDefaultValidatorFactory().getValidator();
}
@Override
public Validator validate(Object object, Class<?>... groups) {
if(enabled) {
addAll(bvalidator.validate(object, groups));
}
return this;
}
@Override
public <T extends View> T onErrorUse(Class<T> view) {
if(hasErrors()) {
used = true;
}
return new MockResult().use(view);
}
public boolean used() {
return used;
}
public Validator disableValidation() {
enabled = false;
return this;
}
}
public class CustomMockValidator extends MockValidator {
private javax.validation.Validator bvalidator;
private boolean enabled = true;
public CustomMockValidator() {
bvalidator = Validation.buildDefaultValidatorFactory().getValidator();
}
@Override
public Validator validate(Object object, Class<?>... groups) {
if(enabled) {
addAll(bvalidator.validate(object, groups));
}
return this;
}
@Override
public <T extends View> T onErrorUse(Class<T> view) {
if(hasErrors()) {
throw new ValidationException();
}
return new MockResult().use(view);
}
public Validator disableValidation() {
enabled = false;
return this;
}
}
//não preciso testar porque o vraptor faz pra mim
public Model create(@NotNull @Valid Model model) {
validator().onErrorRedirectTo(this).add();
return em.merge(model);
}
@Test(expected = ValidationException.class)
public void shouldBeInvalid() {
Model model = new Model();
model.setId(1L);
controller.update(model);
}
//não tem como testar se ocorreu erro
public Model create(Model model) {
validator.validate(model);
validator.onErrorRedirectTo(this).add();
return em.merge(model);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment