/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.dao; import static org.junit.Assert.*; import java.io.File; import javax.persistence.EntityManager; import org.junit.Test; import au.org.intersect.exsite9.domain.ResearchFile; import au.org.intersect.exsite9.domain.SubmissionPackage; /** * Tests {@link SubmissionPackageDAO} */ public final class SubmissionPackageDAOUnitTest extends DAOTest { @Test public void testCrud() { final EntityManager em = createEntityManager(); final SubmissionPackageDAO toTest = new SubmissionPackageDAO(em); final ResearchFileDAO researchFileDAO = new ResearchFileDAO(em); assertNull(toTest.findSubmissionPackageById(0l)); final SubmissionPackage sp = new SubmissionPackage(); assertNull(sp.getId()); toTest.createSubmissionPackage(sp); assertNotNull(sp.getId()); assertEquals(sp, toTest.findSubmissionPackageById(sp.getId())); final ResearchFile rf = new ResearchFile(new File("someFile")); researchFileDAO.createResearchFile(rf); sp.getResearchFiles().add(rf); toTest.updateSubmissionPackage(sp); assertEquals(rf, toTest.findSubmissionPackageById(sp.getId()).getResearchFiles().get(0)); assertEquals(sp, toTest.findSubmissionPackagesWithResearchFile(rf).get(0)); sp.getResearchFiles().clear(); // perform update inside a transaction em.getTransaction().begin(); toTest.updateSubmissionPackage(sp); em.getTransaction().commit(); assertTrue(toTest.findSubmissionPackageById(sp.getId()).getResearchFiles().isEmpty()); assertTrue(toTest.findSubmissionPackagesWithResearchFile(rf).isEmpty()); toTest.deleteSubmissionPackage(sp); assertNull(toTest.findSubmissionPackageById(sp.getId())); } }