1 package dst.ass1.jpa.tests;
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;
10 import javax.persistence.EntityManager;
12 import org.junit.Rule;
13 import org.junit.Test;
15 import dst.ass1.jpa.ORMService;
16 import dst.ass1.jpa.model.IMetadata;
17 import dst.ass1.jpa.util.Constants;
20 * Tests that IMetadata is persisted correctly.
22 public class Ass1_1_1_06Test {
25 public ORMService orm = new ORMService();
28 public void testMetadataMap() {
29 IMetadata md1 = orm.getModelFactory().createMetadata();
31 md1.putData("key1", "value1");
32 md1.putData("key2", "value2");
34 EntityManager em = orm.getEntityManager();
35 em.getTransaction().begin();
39 em.getTransaction().commit();
41 EntityManager em2 = orm.createEntityManager();
42 IMetadata md2 = em2.find(md1.getClass(), md1.getId());
44 Map<String, String> map = md2.getData();
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"));
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"));