package dao; import model.Person; import model.User; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.io.FileNotFoundException; import java.sql.Connection; import static org.junit.jupiter.api.Assertions.*; public class PersonDAOTest { private Database db; private Person insertPerson; private Person retrievePerson; private PersonDAO pDao; @BeforeEach public void setUp() throws DataAccessException, FileNotFoundException { db = new Database(); insertPerson = new Person("12345", "JJenkins", "John", "Jenkins", "Male", "09876", "12041", "02415"); retrievePerson = new Person("45678", "DaveG", "Dave", "Goode", "Male", "17289", "10587", "10294"); Connection conn = db.getConnection(); db.clearTables(); pDao = new PersonDAO(conn); } @AfterEach public void tearDown() throws DataAccessException { db.closeConnection(false); } @Test public void insertPass() throws DataAccessException { Person compareTest = pDao.getPersonByID(insertPerson.getPersonID()); assertNull(compareTest); pDao.createPerson(insertPerson); compareTest = pDao.getPersonByID(insertPerson.getPersonID()); assertEquals(insertPerson, compareTest); } @Test public void insertFail() throws DataAccessException { pDao.createPerson(insertPerson); assertThrows(DataAccessException.class, ()-> pDao.createPerson(insertPerson)); } @Test public void retrievalPass() throws DataAccessException { pDao.createPerson(retrievePerson); Person compareTest = pDao.getPersonByID(retrievePerson.getPersonID()); assertNotNull(compareTest); assertEquals(retrievePerson, compareTest); } @Test public void retrievalFail() throws DataAccessException { Person compareTest = pDao.getPersonByID("27360"); assertEquals(compareTest, null); } @Test public void clearPass() throws DataAccessException { pDao.createPerson(insertPerson); assertNotNull(pDao.getPersonByID(insertPerson.getPersonID())); assertDoesNotThrow(() -> pDao.removeAllPersons()); assertNull(pDao.getPersonByID(insertPerson.getPersonID())); } }