@Override protected Visit getExistingObject() { return visitService.getVisit(EXISTING_ID); } }
/** * @see VisitService#saveVisit(Visit) */ @Test public void saveVisit_shouldBeAbleToAddAnAttributeToAVisit() { Date now = new Date(); Visit visit = visitService.getVisit(1); VisitAttributeType attrType = visitService.getVisitAttributeType(1); VisitAttribute attr = new VisitAttribute(); attr.setAttributeType(attrType); attr.setValue(now); visit.addAttribute(attr); visitService.saveVisit(visit); assertEquals(new SimpleDateFormat("yyyy-MM-dd").format(now), attr.getValueReference()); }
@Override protected Visit getObjectById(Integer id) { return Context.getVisitService().getVisit(id); }
@Test public void shouldVoidASimpleAttribute() { executeDataSet(VISITS_ATTRIBUTES_XML); Visit visit = visitService.getVisit(1); VisitAttributeType attrType = visitService.getVisitAttributeType(1); List<VisitAttribute> attributes = visit.getActiveAttributes(attrType); assertTrue(attributes.size() > 0); VisitAttribute attribute = attributes.get(0); attribute.setVoided(true); visitService.saveVisit(visit); assertNotNull(attribute.getVoidedBy()); assertNotNull(attribute.getDateVoided()); }
/** * @see VisitService#endVisit(Visit,Date) */ @Test public void endVisit_shouldNotFailIfNoValidationErrorsAreFound() { Visit visit = visitService.getVisit(1); visitService.endVisit(visit, new Date()); }
/** * @see VisitService#endVisit(Visit,Date) */ @Test(expected = APIException.class) public void endVisit_shouldFailIfValidationErrorsAreFound() { Visit visit = visitService.getVisit(1); Calendar cal = Calendar.getInstance(); cal.setTime(visit.getStartDatetime()); cal.add(Calendar.DAY_OF_MONTH, -1); visitService.endVisit(visit, cal.getTime()); }
/** * @see VisitService#purgeVisit(Visit) */ @Test public void purgeVisit_shouldEraseTheVisitFromTheDatabase() { int originalSize = getNumberOfAllVisitsIncludingVoided(); Visit visit = visitService.getVisit(1); visitService.purgeVisit(visit); assertEquals(originalSize - 1, getNumberOfAllVisitsIncludingVoided()); }
/** * @see VisitService#endVisit(Visit,Date) */ @Test public void endVisit_shouldSetStopDateTimeAsCurrentDateIfStopDateIsNull() { Visit visit = visitService.getVisit(1); assertNull(visit.getStopDatetime()); visitService.endVisit(visit, null); assertNotNull(visit.getStopDatetime()); }
/** * @see ExistingVisitAssignmentHandler#beforeCreateEncounter(Encounter) */ @Test public void beforeCreateEncounter_shouldNotAssignVisitWhichStoppedBeforeEncounterDate() { Encounter encounter = Context.getEncounterService().getEncounter(1); Assert.assertNull(encounter.getVisit()); //set the visit stop date to that before the encounter date Visit visit = Context.getVisitService().getVisit(1); Calendar calendar = Calendar.getInstance(); calendar.setTime(visit.getStartDatetime()); calendar.set(Calendar.YEAR, 2004); visit.setStopDatetime(calendar.getTime()); Context.getVisitService().saveVisit(visit); new ExistingVisitAssignmentHandler().beforeCreateEncounter(encounter); Assert.assertNull(encounter.getVisit()); } }
/** * @see VisitService#purgeVisit(Visit) */ @Test(expected = APIException.class) public void purgeVisit_shouldFailIfTheVisitHasEncountersAssociatedToIt() { Visit visit = visitService.getVisit(1); Encounter e = Context.getEncounterService().getEncounter(3); visit.addEncounter(e); visitService.saveVisit(visit); //sanity check assertTrue(Context.getEncounterService().getEncountersByVisit(visit, false).size() > 0); visitService.purgeVisit(visit); }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfEncounterDateTimeIsAfterVisitStopDateTime() { Encounter encounter = Context.getEncounterService().getEncounter(3); Visit visit = Context.getVisitService().getVisit(1); visit.setPatient(encounter.getPatient()); encounter.setVisit(visit); //Set encounter dateTime to after the visit stopDateTime. visit.setStopDatetime(new Date()); Date date = new Date(visit.getStopDatetime().getTime() + 1); encounter.setEncounterDatetime(date); errors = new BindException(encounter, "encounter"); encounterValidator.validate(encounter, errors); Assert.assertEquals(true, errors.hasFieldErrors("encounterDatetime")); }
/** * @see EncounterValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfEncounterDateTimeIsBeforeVisitStartDateTime() { Encounter encounter = Context.getEncounterService().getEncounter(3); Visit visit = Context.getVisitService().getVisit(1); visit.setPatient(encounter.getPatient()); encounter.setVisit(visit); //Set encounter dateTime to before the visit startDateTime. Date date = new Date(visit.getStartDatetime().getTime() - 1); encounter.setEncounterDatetime(date); errors = new BindException(encounter, "encounter"); encounterValidator.validate(encounter, errors); Assert.assertEquals(true, errors.hasFieldErrors("encounterDatetime")); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test // This test will throw org.hibernate.PropertyValueException: not-null property references a null or transient value: org.openmrs.VisitAttribute.valueReference // This is a general problem, i.e. that validators on Customizable can't really be called unless you set Hibernate's flushMode to MANUAL. // Once we figure it out, this test can be un-Ignored @Ignore public void validate_shouldFailIfAnAttributeIsBad() { Visit visit = visitService.getVisit(1); visit.addAttribute(makeAttribute(new Date())); visit.addAttribute(makeAttribute("not a date")); visit.getActiveAttributes(); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertEquals(true, errors.hasFieldErrors("attributes")); }
/** * @see VisitService#saveVisit(Visit) */ @Test(expected = TransientObjectException.class) public void saveVisit_shouldNotPersistNewEncounter() { Visit visit = visitService.getVisit(1); Encounter encounter = new Encounter(); encounter.setEncounterDatetime(new Date()); encounter.setEncounterType(Context.getEncounterService().getEncounterType(1)); encounter.setPatient(visit.getPatient()); encounter.setLocation(visit.getLocation()); visit.addEncounter(encounter); visitService.saveVisit(visit); Context.flushSession(); }
/** * @see EncounterService#transferEncounter(Encounter,Patient) */ @Test public void transferEncounter_shouldVoidGivenEncounterVisitIfGivenEncounterIsTheOnlyEncounter() { executeDataSet(TRANSFER_ENC_DATA_XML); Patient anyPatient = new Patient(2); //belongs to visit with id 2 (has this encounter only) Encounter sourceEncounter = Context.getEncounterService().getEncounter(200); Context.getEncounterService().transferEncounter(sourceEncounter, anyPatient); Visit visit = Context.getVisitService().getVisit(200); Assert.assertTrue(visit.getVoided()); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfTheStartDatetimeIsAfterAnyEncounter() { Visit visit = Context.getVisitService().getVisit(1); Encounter encounter = Context.getEncounterService().getEncounter(3); visit.setPatient(encounter.getPatient()); encounter.setVisit(visit); encounter.setEncounterDatetime(visit.getStartDatetime()); Context.getEncounterService().saveEncounter(encounter); //Set visit start date to after the encounter date. Date date = new Date(encounter.getEncounterDatetime().getTime() + 1); visit.setStartDatetime(date); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertEquals(true, errors.hasFieldErrors("startDatetime")); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfTheStopDatetimeIsBeforeAnyEncounter() { Visit visit = Context.getVisitService().getVisit(1); Encounter encounter = Context.getEncounterService().getEncounter(3); visit.setPatient(encounter.getPatient()); encounter.setVisit(visit); encounter.setEncounterDatetime(visit.getStartDatetime()); Context.getEncounterService().saveEncounter(encounter); //Set visit stop date to before the encounter date. Date date = new Date(encounter.getEncounterDatetime().getTime() - 1); visit.setStopDatetime(date); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertEquals(true, errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitService#saveVisit(Visit) */ @Test public void saveVisit_shouldUpdateAnExistingVisitInTheDatabase() { Visit visit = visitService.getVisit(2); assertNull(visit.getLocation());//this is the field we are editing assertNull(visit.getChangedBy()); assertNull(visit.getDateChanged()); visit.setLocation(Context.getLocationService().getLocation(1)); visit = visitService.saveVisit(visit); Context.flushSession(); assertNotNull(visit.getChangedBy()); assertNotNull(visit.getDateChanged()); assertEquals(Integer.valueOf(1), visit.getLocation().getLocationId()); }
/** * @see VisitService#unvoidVisit(Visit) */ @Test public void unvoidVisit_shouldUnvoidTheVisitAndUnsetAllTheVoidRelatedFields() { Visit visit = visitService.getVisit(6); assertTrue(visit.getVoided()); assertNotNull(visit.getVoidReason()); assertNotNull(visit.getVoidedBy()); assertNotNull(visit.getDateVoided()); visit = visitService.unvoidVisit(visit); Assert.assertFalse(visit.getVoided()); assertNull(visit.getVoidReason()); assertNull(visit.getVoidedBy()); assertNull(visit.getDateVoided()); }
/** * @see VisitService#voidVisit(Visit,String) */ @Test public void voidVisit_shouldVoidTheVisitAndSetTheVoidReason() { Visit visit = visitService.getVisit(1); Assert.assertFalse(visit.getVoided()); assertNull(visit.getVoidReason()); assertNull(visit.getVoidedBy()); assertNull(visit.getDateVoided()); visit = visitService.voidVisit(visit, "test reason"); assertTrue(visit.getVoided()); assertEquals("test reason", visit.getVoidReason()); assertEquals(Context.getAuthenticatedUser(), visit.getVoidedBy()); assertNotNull(visit.getDateVoided()); }