/** * @see HibernatePatientDAO#getPatients(String, String, java.util.List, boolean, Integer, Integer, boolean) */ @Test public void getPatients_shouldNotMatchVoidedPatients_SignatureNo1() { List<Patient> patients = dao.getPatients("Hornblower3", 0, 11); Assert.assertEquals(1, patients.size()); Patient patient = patients.get(0); patient.setVoided(true); dao.savePatient(patient); updateSearchIndex(); patients = dao.getPatients("Hornblower3", 0, 11); Assert.assertEquals(0, patients.size()); }
@Test public void patientVoided_shouldVoidMemberships() { executeDataSet(COHORT_XML); Cohort cohort = Context.getCohortService().getCohort(2); Patient voidedPatient = new Patient(7); voidedPatient.setVoided(true); voidedPatient.setDateVoided(new Date()); voidedPatient.setVoidedBy(Context.getAuthenticatedUser()); voidedPatient.setVoidReason("Voided as a result of the associated patient getting voided"); CohortMembership newMemberContainingVoidedPatient = new CohortMembership(voidedPatient.getPatientId()); cohort.addMembership(newMemberContainingVoidedPatient); assertTrue(cohort.contains(voidedPatient.getPatientId())); assertEquals(1, service.getCohortsContainingPatientId(voidedPatient.getId()).size()); service.notifyPatientVoided(voidedPatient); assertTrue(newMemberContainingVoidedPatient.getVoided()); assertEquals(newMemberContainingVoidedPatient.getDateVoided(), voidedPatient.getDateVoided()); assertEquals(newMemberContainingVoidedPatient.getVoidedBy(), voidedPatient.getVoidedBy()); assertEquals(newMemberContainingVoidedPatient.getVoidReason(), voidedPatient.getVoidReason()); }
/** * @see PatientDAO#getPatients(String, String, java.util.List, boolean, Integer, * Integer, boolean) */ @Test public void getPatients_shouldNotMatchVoidedPatients() { List<Patient> patients = dao.getPatients("Hornblower3", 0, 11); Assert.assertEquals(1, patients.size()); Patient patient = patients.get(0); patient.setVoided(true); dao.savePatient(patient); updateSearchIndex(); patients = dao.getPatients("Hornblower3", 0, 11); Assert.assertEquals(0, patients.size()); }
@Test public void checkPatientIdentifiers_shouldIgnoreAbsenceOfActiveIdentifiersGivenPatientIsVoided() throws Exception { // given Patient patient = new Patient(); patient.setVoided(true); patient.addIdentifier(createVoidedPatientIdentifier()); // when patientService.checkPatientIdentifiers(patient); // no exception }
@Test(expected = InsufficientIdentifiersException.class) public void checkPatientIdentifiers_shouldThrowInsufficientIdentifiersErrorGivenPatientHasNoActiveIdentifiers() throws Exception { // given Patient patient = new Patient(); patient.setVoided(false); patient.addIdentifier(createVoidedPatientIdentifier()); // when patientService.checkPatientIdentifiers(patient); // this patient only has a voided identifier, so saving is not allowed > exception }
/** * @see RequireVoidReasonSaveHandler#handle(Voidable,User,Date,String) */ @Test(expected = APIException.class) public void handle_shouldThrowAPIExceptionIfPatientVoidReasonIsNull() { Patient p = Context.getPatientService().getPatient(2); p.setVoided(true); p.setVoidReason(null); Context.getPatientService().savePatient(p); }
@Test public void validate_shouldPassIfPatientAndMembershipAreVoided() { patient.setVoided(true); cohortMembership.setVoided(true); validator.validate(cohort, errors); Assert.assertFalse(errors.hasErrors()); Assert.assertFalse(errors.hasFieldErrors("memberships")); }
/** * @see PersonValidator#validate(Object,Errors) */ @Test public void validate_shouldFailValidationIfVoidReasonIsBlankWhenPatientIsVoided() { Patient pa = Context.getPatientService().getPatient(2); pa.setVoided(true); Errors errors = new BindException(pa, "patient"); validator.validate(pa, errors); Assert.assertTrue(errors.hasFieldErrors("voidReason")); }
/** * @see CohortValidator#validate(Object, Errors) */ @Test public void validate_shouldFailIfPatientIsVoided() { patient.setVoided(true); validator.validate(cohort, errors); Assert.assertTrue(errors.hasFieldErrors("memberships")); String eMessage = "Patient " + patient.getPatientId() + " is voided, cannot add voided members to a cohort"; Assert.assertEquals(eMessage, errors.getFieldError("memberships").getDefaultMessage()); }