]> git.somenet.org - pub/jan/dst18.git/blob - ass1-jpa/src/test/java/dst/ass1/jpa/tests/Ass1_3_2Test.java
Add template for assignment 1
[pub/jan/dst18.git] / ass1-jpa / src / test / java / dst / ass1 / jpa / tests / Ass1_3_2Test.java
1 package dst.ass1.jpa.tests;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertTrue;
7
8 import java.util.List;
9
10 import javax.persistence.EntityManager;
11
12 import org.junit.Rule;
13 import org.junit.Test;
14
15 import dst.ass1.jpa.ORMService;
16 import dst.ass1.jpa.dao.IDAOFactory;
17 import dst.ass1.jpa.listener.DefaultListener;
18 import dst.ass1.jpa.model.IModelFactory;
19 import dst.ass1.jpa.model.IParticipant;
20
21 public class Ass1_3_2Test {
22
23     @Rule
24     public ORMService orm = new ORMService();
25
26     @Test
27     public void testDefaultListener() {
28         DefaultListener.clear();
29
30         IDAOFactory daoFactory = orm.getDaoFactory();
31         IModelFactory modelFactory = orm.getModelFactory();
32         EntityManager em = orm.getEntityManager();
33
34         em.getTransaction().begin();
35
36         // do some inserts
37         IParticipant participant = modelFactory.createParticipant();
38         participant.setName(TestData.PARTICIPANT_1_NAME);
39         participant.setEmail(TestData.PARTICIPANT_1_EMAIL);
40         em.persist(participant);
41         em.flush();
42         em.remove(participant);
43         em.flush();
44
45         participant = modelFactory.createParticipant();
46         participant.setName(TestData.PARTICIPANT_2_NAME);
47         participant.setEmail(TestData.PARTICIPANT_2_EMAIL);
48         em.persist(participant);
49
50         assertEquals(1, DefaultListener.getRemoveOperations());
51         assertTrue(DefaultListener.getPersistOperations() > 0);
52         assertEquals((double) DefaultListener.getOverallTimeToPersist() / DefaultListener.getPersistOperations(), DefaultListener.getAverageTimeToPersist(), 0.0);
53
54         List<IParticipant> participants = daoFactory.createParticipantDAO().findAll();
55         assertNotNull(participants);
56         assertFalse(participants.isEmpty());
57
58         int loadOperations = DefaultListener.getLoadOperations();
59         em.refresh(participants.get(0));
60         assertEquals(loadOperations + 1, DefaultListener.getLoadOperations());
61
62         participants = daoFactory.createParticipantDAO().findAll();
63         assertNotNull(participants);
64         assertFalse(participants.isEmpty());
65
66         participants.get(0).setName("updated");
67         em.persist(participants.get(0));
68         em.flush();
69
70         assertEquals(1, DefaultListener.getUpdateOperations());
71     }
72 }