]> git.somenet.org - pub/jan/dst18.git/blob - ass1-jpa/src/test/java/dst/ass1/jpa/tests/Ass1_1_1_06Test.java
Add template for assignment 1
[pub/jan/dst18.git] / ass1-jpa / src / test / java / dst / ass1 / jpa / tests / Ass1_1_1_06Test.java
1 package dst.ass1.jpa.tests;
2
3 import static org.hamcrest.CoreMatchers.hasItems;
4 import static org.hamcrest.CoreMatchers.is;
5 import static org.junit.Assert.assertThat;
6 import static org.junit.Assert.assertTrue;
7
8 import java.util.Map;
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.model.IMetadata;
17 import dst.ass1.jpa.util.Constants;
18
19 /**
20  * Tests that IMetadata is persisted correctly.
21  */
22 public class Ass1_1_1_06Test {
23
24     @Rule
25     public ORMService orm = new ORMService();
26
27     @Test
28     public void testMetadataMap() {
29         IMetadata md1 = orm.getModelFactory().createMetadata();
30
31         md1.putData("key1", "value1");
32         md1.putData("key2", "value2");
33
34         EntityManager em = orm.getEntityManager();
35         em.getTransaction().begin();
36
37         em.persist(md1);
38         em.flush();
39         em.getTransaction().commit();
40
41         EntityManager em2 = orm.createEntityManager();
42         IMetadata md2 = em2.find(md1.getClass(), md1.getId());
43
44         Map<String, String> map = md2.getData();
45
46         assertThat(map.size(), is(2));
47         assertThat(map.keySet(), hasItems("key1", "key2"));
48         assertThat(map.get("key1"), is("value1"));
49         assertThat(map.get("key2"), is("value2"));
50     }
51
52     @Test
53     public void testMetadataMapJdbc() {
54         assertTrue(orm.getDatabaseGateway().isTable(Constants.T_METADATA));
55         assertTrue(orm.getDatabaseGateway().isTable(Constants.J_METADATA_DATA));
56         assertTrue(orm.getDatabaseGateway().isColumnInTable(Constants.J_METADATA_DATA, Constants.I_METADATA));
57         assertTrue(orm.getDatabaseGateway().isColumnInTable(Constants.J_METADATA_DATA, Constants.M_METADATA_DATA + "_KEY"));
58     }
59
60 }