1 package dst.ass1.jpa.tests;
3 import static org.hamcrest.core.IsCollectionContaining.hasItems;
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertThat;
9 import javax.persistence.EntityTransaction;
10 import javax.persistence.Query;
12 import org.junit.Test;
14 import dst.ass1.jpa.model.ILecturer;
15 import dst.ass1.jpa.model.ILesson;
16 import dst.ass1.jpa.util.Constants;
18 public class Ass1_2_1cTest extends Ass1_TestBase {
20 @SuppressWarnings("unchecked")
22 public void namedQuery_returnsCorrectResult() {
23 Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
25 List<ILecturer> result = (List<ILecturer>) query.getResultList();
26 assertEquals(1, result.size());
27 assertEquals(testData.lecturer2Id, result.get(0).getId());
31 public void namedQuery_withAdditionalAssociation_returnsCorrectResult() throws Exception {
32 ILesson lesson2 = daoFactory.createLessonDAO().findById(testData.lesson2Id);
33 ILecturer lecturer1 = daoFactory.createLecturerDAO().findById(testData.lecturer1Id);
34 ILecturer lecturer2 = daoFactory.createLecturerDAO().findById(testData.lecturer2Id);
36 EntityTransaction tx = em.getTransaction();
38 lesson2.addLecturer(lecturer1);
39 lecturer1.addLesson(lesson2);
41 em.persist(lecturer1);
45 Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
47 List<ILecturer> result = (List<ILecturer>) query.getResultList();
48 assertEquals(2, result.size());
49 assertThat(result, hasItems(lecturer1, lecturer2));
52 @SuppressWarnings("unchecked")
54 public void namedQuery_onEmptyDatabase_returnsEmptyResult() {
57 Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
59 List<ILecturer> result = (List<ILecturer>) query.getResultList();
60 assertEquals(0, result.size());