/** * 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 or empty or whitespace * @should fail validation if name is duplicate * @should pass validation if all required fields have proper values * @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) { super.validate(obj, errors); EncounterRole encounterRole = (EncounterRole) obj; if (!errors.hasErrors()) { EncounterRole duplicate = Context.getEncounterService().getEncounterRoleByName(encounterRole.getName().trim()); if (duplicate != null && duplicate.getUuid() != null && !OpenmrsUtil.nullSafeEquals(encounterRole.getUuid(), duplicate.getUuid())) { errors.rejectValue("name", "encounterRole.duplicate.name", "Specified Encounter Role name already exists, please specify another "); } ValidateUtil.validateFieldLengths(errors, obj.getClass(), "name", "description", "retireReason"); } } }
/** * @see org.openmrs.validator.EncounterRoleValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldFailIfEncounterRoleNameIsDuplicate() { Assert.assertNotNull(Context.getEncounterService().getEncounterRoleByName("Unknown")); EncounterRole newEncounterRole = new EncounterRole(); newEncounterRole.setName("Unknown"); Errors errors = new BindException(newEncounterRole, "encounterRole"); new EncounterRoleValidator().validate(newEncounterRole, errors); Assert.assertTrue(errors.hasFieldErrors("name")); }
/** * {@link org.openmrs.validator.EncounterRoleValidator#validate(Object, org.springframework.validation.Errors)} */ @Test public void validate_shouldPassEditingEncounterRoleName() { EncounterRole encounterRole = Context.getEncounterService().getEncounterRoleByName("Unknown"); Assert.assertNotNull(encounterRole); encounterRole.setName("Lab"); encounterRole.setDescription("desc"); Errors errors = new BindException(encounterRole, "encounterRole"); new EncounterRoleValidator().validate(encounterRole, errors); Assert.assertFalse(errors.hasErrors()); }
/** * @see EncounterService#getEncounterRoleByName(String) */ @Test public void getEncounterRoleByName_shouldFindEncounterRoleByName() { EncounterService encounterService = Context.getEncounterService(); EncounterRole encounterRole = new EncounterRole(); String name = "surgeon role"; encounterRole.setDescription("The surgeon"); encounterRole.setName(name); encounterRole = encounterService.saveEncounterRole(encounterRole); EncounterRole retrievedEncounterRole = encounterService.getEncounterRoleByName(name); assertNotNull("valid EncounterRole object should be returned", retrievedEncounterRole); assertEquals(encounterRole.getUuid(), retrievedEncounterRole.getUuid()); }
/** * {@link org.openmrs.validator.EncounterRoleValidator#validate(Object, org.springframework.validation.Errors)} */ @Test public void validate_shouldPassValidationIfFieldLengthsAreCorrect() { EncounterRole encounterRole = Context.getEncounterService().getEncounterRoleByName("Unknown"); Assert.assertNotNull(encounterRole); encounterRole.setName("name"); encounterRole.setDescription("desc"); encounterRole.setRetireReason("retireReason"); Errors errors = new BindException(encounterRole, "encounterRole"); new EncounterRoleValidator().validate(encounterRole, errors); Assert.assertFalse(errors.hasErrors()); }
@Test public void shouldGetAnEncounterRoleByName() throws Exception { final String ROLE_NAME = "Unknown"; MockHttpServletRequest req = request(RequestMethod.GET, getURI()); req.setParameter("q", ROLE_NAME); req.setParameter("v", "default"); SimpleObject result = deserialize(handle(req)); Object encounterRoleObject = Util.getResultsList(result).get(0); EncounterRole encounterRole = Context.getEncounterService().getEncounterRoleByName(ROLE_NAME); Assert.assertEquals(encounterRole.getUuid(), PropertyUtils.getProperty(encounterRoleObject, "uuid")); Assert.assertEquals(encounterRole.getName(), PropertyUtils.getProperty(encounterRoleObject, "name")); Assert.assertEquals(encounterRole.getDescription(), PropertyUtils.getProperty(encounterRoleObject, "description")); } }