1 package dst.ass1.jpa.tests;
3 import static org.hamcrest.CoreMatchers.is;
4 import static org.hamcrest.core.IsCollectionContaining.hasItems;
5 import static org.junit.Assert.assertEquals;
6 import static org.junit.Assert.assertNotNull;
7 import static org.junit.Assert.assertThat;
11 import javax.persistence.EntityManager;
13 import org.junit.Test;
15 import dst.ass1.jpa.dao.ICoursePlatformDAO;
16 import dst.ass1.jpa.dao.IMaterialServerDAO;
17 import dst.ass1.jpa.dao.impl.DAOFactory;
18 import dst.ass1.jpa.model.ICoursePlatform;
19 import dst.ass1.jpa.model.IMaterialServer;
22 * Tests the association between ICoursePlatform and IMaterialServer.
24 public class Ass1_1_1_09Test extends Ass1_TestBase {
27 public void testCoursePlatformMaterialServerAssociation() {
28 EntityManager em = orm.createEntityManager();
29 DAOFactory daoFactory = new DAOFactory(em);
31 IMaterialServerDAO materialServerDAO = daoFactory.createMaterialServerDAO();
32 ICoursePlatformDAO coursePlatformDAO = daoFactory.createCoursePlatformDAO();
34 List<IMaterialServer> materialServers = materialServerDAO.findAll();
36 assertNotNull(materialServers);
37 assertEquals(3, materialServers.size());
39 IMaterialServer materialServer1 = materialServerDAO.findById(testData.materialServer1Id);
40 IMaterialServer materialServer2 = materialServerDAO.findById(testData.materialServer2Id);
41 IMaterialServer materialServer3 = materialServerDAO.findById(testData.materialServer3Id);
43 assertEquals(testData.materialServer1Id, materialServer1.getId());
44 assertEquals(testData.materialServer2Id, materialServer2.getId());
45 assertEquals(testData.materialServer3Id, materialServer3.getId());
47 List<ICoursePlatform> coursePlatforms = coursePlatformDAO.findAll();
49 assertNotNull(coursePlatforms);
50 assertEquals(2, coursePlatforms.size());
52 ICoursePlatform coursePlatform1 = coursePlatformDAO.findById(testData.coursePlatform1Id);
53 ICoursePlatform coursePlatform2 = coursePlatformDAO.findById(testData.coursePlatform2Id);
55 assertEquals(testData.coursePlatform1Id, coursePlatform1.getId());
56 assertNotNull(coursePlatform1.getMaterialServers());
57 assertThat(coursePlatform1.getMaterialServers().size(), is(2));
58 List<Long> materialServerIds1 = map(coursePlatform1.getMaterialServers(), IMaterialServer::getId);
59 assertThat(materialServerIds1, hasItems(testData.materialServer1Id, testData.materialServer2Id));
61 assertEquals(testData.coursePlatform2Id, coursePlatform2.getId());
62 assertNotNull(coursePlatform2.getMaterialServers());
63 assertThat(coursePlatform2.getMaterialServers().size(), is(1));
64 List<Long> materialServerIds2 = map(coursePlatform2.getMaterialServers(), IMaterialServer::getId);
65 assertThat(materialServerIds2, hasItems(testData.materialServer3Id));