package model.manager; import java.util.Calendar; import java.util.Date; import java.util.List; import org.celllife.idart.database.hibernate.Appointment; import org.celllife.idart.database.hibernate.Patient; import org.celllife.idart.database.hibernate.Study; import org.celllife.idart.database.hibernate.StudyParticipant; import org.celllife.idart.test.HibernateTest; import org.testng.Assert; import org.testng.annotations.Test; public class SmsManagerTest extends HibernateTest { @Test public void testGetContactsDefaulted(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 1); } @Test public void testGetContactsDefaulted_multiple_appointments(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), new Date()); getSession().save(appointment); appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 1); } @Test(enabled=false) public void testGetContactsDefaulted_not_in_active_group(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_CONTROL, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsDefaulted_appointment_has_visitdate(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), new Date()); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsDefaulted_appointment_on_diff_day(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -4); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsDefaulted_not_in_study(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsDefaulted_patient_inactive(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(false); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsDefaulted(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsExpected(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 1); } @Test public void testGetContactsExpected_multiple_appointments(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), new Date()); getSession().save(appointment); appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 1); } @Test(enabled=false) public void testGetContactsExpected_not_in_active_group(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_CONTROL, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsExpected_appointment_has_visitdate(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), new Date()); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsExpected_patient_inactive(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(false); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsExpected_appointment_on_diff_day(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Study study = AdministrationManager.getCidaStudy(getSession()); StudyParticipant participant = new StudyParticipant(patient, study, StudyParticipant.GP_ACTIVE, new Date(), null); participant.setNetwork(""); participant.setLanguage("English"); getSession().save(participant); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 4); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } @Test public void testGetContactsExpected_not_in_study(){ Patient patient = new Patient(); patient.setPatientId("attribTest"); patient.setClinic(AdministrationManager.getMainClinic(getSession())); patient.setSex('M'); patient.setModified('T'); patient.setAccountStatus(true); getSession().save(patient); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 5); Appointment appointment = new Appointment(patient, cal.getTime(), null); getSession().save(appointment); getSession().flush(); List<StudyParticipant> contactsDefaulted = SmsManager.getContactsExpected(getSession(), 5); Assert.assertEquals(contactsDefaulted.size(), 0); } }