]> git.somenet.org - pub/jan/dst18.git/blob - ass1-jpa/src/test/java/dst/ass1/jpa/tests/Ass1_2_1cTest.java
Add template for assignment 1
[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     @Test
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);
35
36         EntityTransaction tx = em.getTransaction();
37         tx.begin();
38         lesson2.addLecturer(lecturer1);
39         lecturer1.addLesson(lesson2);
40         em.persist(lesson2);
41         em.persist(lecturer1);
42         em.flush();
43         tx.commit();
44
45         Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
46
47         List<ILecturer> result = (List<ILecturer>) query.getResultList();
48         assertEquals(2, result.size());
49         assertThat(result, hasItems(lecturer1, lecturer2));
50     }
51
52     @SuppressWarnings("unchecked")
53     @Test
54     public void namedQuery_onEmptyDatabase_returnsEmptyResult() {
55         db.truncateTables();
56
57         Query query = em.createNamedQuery(Constants.Q_MOST_ACTIVE_LECTURER);
58
59         List<ILecturer> result = (List<ILecturer>) query.getResultList();
60         assertEquals(0, result.size());
61     }
62 }