diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/action/AddPreRegisterPatientActionTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/action/AddPreRegisterPatientActionTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f7d9d1b20cd4ad1b7dc72c340dd0dd1f34e243d8 --- /dev/null +++ b/iTrust/test/edu/ncsu/csc/itrust/unit/action/AddPreRegisterPatientActionTest.java @@ -0,0 +1,98 @@ +/** + * Tests for AddPatientAction + */ + +package edu.ncsu.csc.itrust.unit.action; + +import junit.framework.TestCase; +import edu.ncsu.csc.itrust.action.AddPreRegisteredPatientAction; +import edu.ncsu.csc.itrust.beans.PatientBean; +import edu.ncsu.csc.itrust.dao.DAOFactory; +import edu.ncsu.csc.itrust.dao.mysql.AuthDAO; +import edu.ncsu.csc.itrust.dao.mysql.PatientDAO; +import edu.ncsu.csc.itrust.unit.datagenerators.TestDataGenerator; +import edu.ncsu.csc.itrust.unit.testutils.TestDAOFactory; +import edu.ncsu.csc.itrust.exception.FormValidationException; +import edu.ncsu.csc.itrust.exception.ITrustException; +import edu.ncsu.csc.itrust.enums.Role; + + +public class AddPreRegisterPatientActionTest extends TestCase { + private DAOFactory factory = TestDAOFactory.getTestInstance(); + private PatientDAO patientDAO = TestDAOFactory.getTestInstance().getPatientDAO(); + private AuthDAO authDAO = TestDAOFactory.getTestInstance().getAuthDAO(); + private TestDataGenerator gen = new TestDataGenerator(); + private AddPreRegisteredPatientAction action; + +/** + * Sets up defaults + */ + @Override + protected void setUp() throws Exception { + gen.clearAllTables(); + action = new AddPreRegisteredPatientAction(factory, 0L); + } + + /** + * Test adding a patient with correct information. + */ + public void testPreRegisterPatientAction() throws Exception { + PatientBean p = new PatientBean(); + p.setFirstName("Jiminy"); + p.setLastName("Cricket"); + p.setEmail("make.awish@gmail.com"); + p.setPassword("password"); + p.setStreetAddress1("SA1"); + p.setStreetAddress2("SA2"); + p.setZip("12345"); + p.setCity("Champaign"); + p.setState("IL"); + p.setPhone("1234567890"); + p.setIcAddress1("ICA1"); + p.setIcAddress2("ICA2"); + p.setIcZip("54321"); + p.setIcCity("Urbana"); + p.setIcState("AK"); + p.setIcPhone("1122334455"); + + long mid = action.addPatient(p); + + PatientBean p2 = patientDAO.getPatient(mid); + assertEquals(p.getFirstName(), p2.getFirstName()); + assertEquals(p.getLastName(), p2.getLastName()); + assertEquals(p.getEmail(), p2.getEmail()); + assertEquals(p.getStreetAddress1(), p2.getStreetAddress1()); + assertEquals(p.getStreetAddress2(), p2.getStreetAddress2()); + assertEquals(p.getZip(), p2.getZip()); + assertEquals(p.getCity(), p2.getCity()); + assertEquals(p.getState(), p2.getState()); + assertEquals(p.getPhone(), p2.getPhone()); + assertEquals(p.getIcAddress1(), p2.getIcAddress1()); + assertEquals(p.getIcAddress2(), p2.getIcAddress2()); + assertEquals(p.getIcZip(), p2.getIcZip()); + assertEquals(p.getIcCity(), p2.getIcCity()); + assertEquals(p.getIcState(), p.getIcState()); + assertEquals(p.getIcPhone(), p.getIcPhone()); + + assertEquals(Role.PREREGISTEREDPATIENT, authDAO.getUserRole(mid)); + } + + /** + * Ensure that invalid emails are not allowed + */ + public void testPreRegisterPatientInvalidEmail() throws Exception { + PatientBean p = new PatientBean(); + p.setFirstName("Jiminy"); + p.setLastName("Cricket"); + p.setEmail("1234"); + p.setPassword("password"); + + // maybe not needed + try { + action.addPatient(p); + fail("Invalid email"); + } catch (FormValidationException e) { + + } + } +}