@Test public void validate_shouldPassValidationIfVisitDateOnBirthDate() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(1974, 4, 8); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(false); visit.setPatient(patient); calendar.set(1974, 4, 8); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, not(hasFieldErrors("startDatetime"))); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldRejectAVisitIfStopDateTimeFallsIntoAnotherVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.JANUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.JANUARY, 8); visit.setStopDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("stopDatetime")); }
@Test public void validate_shouldPassValidationIfVisitDateOnEstimatedBirthDatesGracePeriod() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(2000, 7, 25); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(true); calendar.set(2010, 7, 25); patient.setDeathDate(calendar.getTime()); visit.setPatient(patient); calendar.set(1995, 7, 25); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, not(hasFieldErrors("startDatetime"))); }
@Test public void validate_shouldPassValidationIfVisitDateOnEstimatedBirthDatesMinimumOneYearGracePeriod() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(2000, 7, 25); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(true); calendar.set(2000, 8, 25); patient.setDeathDate(calendar.getTime()); visit.setPatient(patient); calendar.set(1999, 7, 25); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, not(hasFieldErrors("startDatetime"))); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldRejectAVisitIfStartDateTimeFallsIntoAnotherVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.JANUARY, 6); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("startDatetime")); }
@Test public void validate_shouldPassValidationIfVisitDateAfterBirthDate() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(1974, 4, 8); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(false); visit.setPatient(patient); calendar.set(1974, 4, 9); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, not(hasFieldErrors("startDatetime"))); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldRejectAVisitIfItContainsAnotherVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.JANUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.JANUARY, 12); visit.setStopDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldRejectAVisitIfStartDateTimeIsEqualToStartDateTimeOfAnotherVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(DATE_TIME_2014_01_04_00_00_00_0); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("startDatetime")); }
@Test public void validate_shouldFailValidationIfVisitDateBeforeBirthDate() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(1974, 4, 8); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(false); visit.setPatient(patient); calendar.set(1974, 4, 7); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, hasFieldErrors("startDatetime", "Visit.startDateCannotFallBeforeTheBirthDateOfTheSamePatient")); }
/** * @see VisitService#saveVisit(Visit) */ @Test(expected = APIException.class) public void saveVisit_shouldFailIfValidationErrorsAreFound() { Visit visit = new Visit(); //Not setting the patient so that we get validation errors visit.setVisitType(visitService.getVisitType(1)); visit.setStartDatetime(new Date()); visitService.saveVisit(visit); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfTheEndDatetimeIsBeforeTheStartDatetime() { Visit visit = new Visit(); Calendar c = Calendar.getInstance(); visit.setStartDatetime(c.getTime()); c.set(2010, 3, 15);//set to an older date visit.setStopDatetime(c.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertEquals(true, errors.hasFieldErrors("stopDatetime")); }
@Test public void validate_shouldFailValidationIfVisitDateBeforeEstimatedBirthDatesMinimumOneYearGracePeriod() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(2000, 7, 25); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(true); calendar.set(2000, 8, 25); patient.setDeathDate(calendar.getTime()); visit.setPatient(patient); calendar.set(1999, 7, 24); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, hasFieldErrors("startDatetime", "Visit.startDateCannotFallBeforeTheBirthDateOfTheSamePatient")); } }
@Test public void validate_shouldFailValidationIfVisitDateBeforeEstimatedBirthDatesGracePeriod() { Visit visit = new Visit(); Patient patient = new Patient(); calendar.set(2000, 7, 25); patient.setBirthdate(calendar.getTime()); patient.setBirthdateEstimated(true); calendar.set(2010, 7, 25); patient.setDeathDate(calendar.getTime()); visit.setPatient(patient); calendar.set(1995, 7, 24); visit.setStartDatetime(calendar.getTime()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertThat(errors, hasFieldErrors("startDatetime", "Visit.startDateCannotFallBeforeTheBirthDateOfTheSamePatient")); }
private Visit makeVisit(Integer patientId) { Visit visit = new Visit(); visit.setPatient(Context.getPatientService().getPatient(patientId)); visit.setStartDatetime(new Date()); visit.setVisitType(visitService.getVisitType(1)); return visit; }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfStopDateTimeFallsIntoAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.FEBRUARY, 8); visit.setStopDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfItContainsAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 2); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); calendar.set(2014, Calendar.FEBRUARY, 12); visit.setStopDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("stopDatetime")); }
/** * @see VisitValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldAcceptAVisitIfStartDateTimeFallsIntoAnotherVoidedVisitOfTheSamePatient() { Calendar calendar = Calendar.getInstance(); calendar.set(2014, Calendar.FEBRUARY, 6); Visit visit = makeVisit(42); visit.setStartDatetime(calendar.getTime()); assertTrue(patientHasVoidedVisit(visit.getPatient(), DATE_TIME_2014_02_05_00_00_00_0, DATE_TIME_2014_02_11_00_00_00_0)); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertFalse(errors.hasFieldErrors("startDatetime")); }
/** * @see VisitService#saveVisit(Visit) */ @Test public void saveVisit_shouldPassIfNoValidationErrorsAreFound() { Visit visit = new Visit(); visit.setPatient(Context.getPatientService().getPatient(2)); visit.setVisitType(visitService.getVisitType(1)); visit.setStartDatetime(new Date()); visitService.saveVisit(visit); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfVisitTypeIsNotSet() { Visit visit = new Visit(); visit.setPatient(Context.getPatientService().getPatient(2)); visit.setStartDatetime(new Date()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("visitType")); }
/** * @see VisitValidator#validate(Object,Errors) */ @Test public void validate_shouldFailIfPatientIsNotSet() { VisitService vs = Context.getVisitService(); Visit visit = new Visit(); visit.setVisitType(vs.getVisitType(1)); visit.setStartDatetime(new Date()); Errors errors = new BindException(visit, "visit"); new VisitValidator().validate(visit, errors); assertTrue(errors.hasFieldErrors("patient")); }