]> git.somenet.org - pub/jan/dst18.git/blob - ass1-jpa/src/test/java/dst/ass1/jpa/tests/Ass1_2_1cTest.java
Prepare existing modules for next assignment
[pub/jan/dst18.git] / ass1-jpa / src / test / java / dst / ass1 / jpa / tests / Ass1_2_1cTest.java
1 package dst.ass1.jpa.tests;
2
3 import static org.hamcrest.core.IsCollectionContaining.hasItems;
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertThat;
6
7 import java.util.List;
8
9 import javax.persistence.EntityTransaction;
10 import javax.persistence.Query;
11
12 import org.junit.Test;
13
14 import dst.ass1.jpa.model.ILecturer;
15 import dst.ass1.jpa.model.ILesson;
16 import dst.ass1.jpa.util.Constants;
17
18 public class Ass1_2_1cTest extends Ass1_TestBase {
19
20     @SuppressWarnings("unchecked")
21     @Test
22     public void namedQuery_returnsCorrectResult() {
23         Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
24
25         List<ILecturer> result = (List<ILecturer>) query.getResultList();
26         assertEquals(1, result.size());
27         assertEquals(testData.lecturer2Id, result.get(0).getId());
28     }
29
30     @SuppressWarnings("unchecked")
31     @Test
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);
36
37         EntityTransaction tx = em.getTransaction();
38         tx.begin();
39         lesson2.addLecturer(lecturer1);
40         lecturer1.addLesson(lesson2);
41         em.persist(lesson2);
42         em.persist(lecturer1);
43         em.flush();
44         tx.commit();
45
46         Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
47
48         List<ILecturer> result = (List<ILecturer>) query.getResultList();
49         assertEquals(2, result.size());
50         assertThat(result, hasItems(lecturer1, lecturer2));
51     }
52
53     @SuppressWarnings("unchecked")
54     @Test
55     public void namedQuery_onEmptyDatabase_returnsEmptyResult() {
56         db.truncateTables();
57
58         Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
59
60         List<ILecturer> result = (List<ILecturer>) query.getResultList();
61         assertEquals(0, result.size());
62     }
63 }