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());
30 @SuppressWarnings("unchecked")
32 public void namedQuery_withAdditionalAssociation_returnsCorrectResult() throws Exception {
33 ILesson lesson2 = daoFactory.createLessonDAO().findById(testData.lesson2Id);
34 ILecturer lecturer1 = daoFactory.createLecturerDAO().findById(testData.lecturer1Id);
35 ILecturer lecturer2 = daoFactory.createLecturerDAO().findById(testData.lecturer2Id);
37 EntityTransaction tx = em.getTransaction();
39 lesson2.addLecturer(lecturer1);
40 lecturer1.addLesson(lesson2);
42 em.persist(lecturer1);
46 Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
48 List<ILecturer> result = (List<ILecturer>) query.getResultList();
49 assertEquals(2, result.size());
50 assertThat(result, hasItems(lecturer1, lecturer2));
53 @SuppressWarnings("unchecked")
55 public void namedQuery_onEmptyDatabase_returnsEmptyResult() {
58 Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
60 List<ILecturer> result = (List<ILecturer>) query.getResultList();
61 assertEquals(0, result.size());