Family-Map-Project / FamilyMapServer / FamilyMapServerStudent-master / java / dao / PersonDAOTest.java
PersonDAOTest.java
Raw
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()));
    }
}