use of org.openmrs.Form in project openmrs-core by openmrs.
the class FormValidator method validate.
/**
* Checks the form object for any inconsistencies/errors
*
* @see org.springframework.validation.Validator#validate(java.lang.Object,
* org.springframework.validation.Errors)
* @should fail validation if name is null
* @should fail validation if version is null
* @should fail validation if version does not match regex
* @should fail validation if retiredReason is null
* @should fail validation if retiredReason is empty
* @should pass validation if all fields are correct
* @should pass validation if field lengths are correct
* @should fail validation if field lengths are not correct
*/
@Override
public void validate(Object obj, Errors errors) {
Form form = (Form) obj;
if (form == null) {
errors.rejectValue("form", "error.general");
} else {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "error.name");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "version", "error.null");
if (form.getVersion() != null && !form.getVersion().matches("^\\d.*$")) {
errors.rejectValue("version", "Form.version.invalid");
}
if (form.getRetired()) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "retireReason", "general.retiredReason.empty");
}
ValidateUtil.validateFieldLengths(errors, obj.getClass(), "name", "version", "description", "retireReason");
}
}
use of org.openmrs.Form in project openmrs-core by openmrs.
the class FormServiceImpl method getForms.
/**
* @see org.openmrs.api.FormService#getForms(java.lang.String, boolean)
*/
@Override
@Transactional(readOnly = true)
public List<Form> getForms(String fuzzyName, boolean onlyLatestVersion) {
// get all forms including unpublished and including retired
List<Form> forms = Context.getFormService().getForms(fuzzyName, null, null, null, null, null, null);
Set<String> namesAlreadySeen = new HashSet<>();
for (Iterator<Form> i = forms.iterator(); i.hasNext(); ) {
Form form = i.next();
if (namesAlreadySeen.contains(form.getName())) {
i.remove();
} else {
namesAlreadySeen.add(form.getName());
}
}
return forms;
}
use of org.openmrs.Form in project openmrs-core by openmrs.
the class FormValidatorTest method validate_shouldFailValidationIfRetiredReasonIsNull.
/**
* @see FormValidator#validate(Object,Errors)
*/
@Test
public void validate_shouldFailValidationIfRetiredReasonIsNull() {
Form form = new Form();
form.setName("test");
form.setVersion("1.0");
form.setRetired(true);
Errors errors = new BindException(form, "form");
new FormValidator().validate(form, errors);
Assert.assertFalse(errors.hasFieldErrors("name"));
Assert.assertFalse(errors.hasFieldErrors("version"));
Assert.assertTrue(errors.hasFieldErrors("retireReason"));
}
use of org.openmrs.Form in project openmrs-core by openmrs.
the class FormValidatorTest method validate_shouldFailValidationIfFieldLengthsAreNotCorrect.
/**
* @see FormValidator#validate(Object,Errors)
*/
@Test
public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
Form form = new Form();
form.setName("too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text");
form.setVersion("1111111111111111111111111111111111111111111111111111");
form.setDescription("too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text");
form.setRetireReason("too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text");
Errors errors = new BindException(form, "form");
new FormValidator().validate(form, errors);
Assert.assertTrue(errors.hasFieldErrors("name"));
Assert.assertTrue(errors.hasFieldErrors("version"));
Assert.assertTrue(errors.hasFieldErrors("description"));
Assert.assertTrue(errors.hasFieldErrors("retireReason"));
}
use of org.openmrs.Form in project openmrs-core by openmrs.
the class FormValidatorTest method validate_shouldFailValidationIfNameIsNull.
/**
* @see FormValidator#validate(Object,Errors)
*/
@Test
public void validate_shouldFailValidationIfNameIsNull() {
Form form = new Form();
form.setVersion("1.0");
Errors errors = new BindException(form, "form");
new FormValidator().validate(form, errors);
Assert.assertTrue(errors.hasFieldErrors("name"));
Assert.assertFalse(errors.hasFieldErrors("version"));
}
Aggregations