Search in sources :

Example 11 with Form

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");
    }
}
Also used : Form(org.openmrs.Form)

Example 12 with Form

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;
}
Also used : Form(org.openmrs.Form) HashSet(java.util.HashSet) Transactional(org.springframework.transaction.annotation.Transactional)

Example 13 with Form

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"));
}
Also used : Errors(org.springframework.validation.Errors) Form(org.openmrs.Form) BindException(org.springframework.validation.BindException) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 14 with Form

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"));
}
Also used : Errors(org.springframework.validation.Errors) Form(org.openmrs.Form) BindException(org.springframework.validation.BindException) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Example 15 with Form

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"));
}
Also used : Errors(org.springframework.validation.Errors) Form(org.openmrs.Form) BindException(org.springframework.validation.BindException) Test(org.junit.Test) BaseContextSensitiveTest(org.openmrs.test.BaseContextSensitiveTest)

Aggregations

Form (org.openmrs.Form)45 Test (org.junit.Test)37 BaseContextSensitiveTest (org.openmrs.test.BaseContextSensitiveTest)37 BindException (org.springframework.validation.BindException)8 Errors (org.springframework.validation.Errors)8 Date (java.util.Date)7 Encounter (org.openmrs.Encounter)7 FormField (org.openmrs.FormField)6 FormResource (org.openmrs.FormResource)6 Message (ca.uhn.hl7v2.model.Message)5 SimpleDateFormat (java.text.SimpleDateFormat)5 ArrayList (java.util.ArrayList)5 Patient (org.openmrs.Patient)3 ORU_R01 (ca.uhn.hl7v2.model.v25.message.ORU_R01)2 HashSet (java.util.HashSet)2 Concept (org.openmrs.Concept)2 Field (org.openmrs.Field)2 Location (org.openmrs.Location)2 SimpleObject (org.openmrs.ui.framework.SimpleObject)2 HL7Exception (ca.uhn.hl7v2.HL7Exception)1