1 package dst.ass1.jpa.tests;
3 import static org.hamcrest.CoreMatchers.is;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertThat;
8 import javax.persistence.metamodel.ManagedType;
9 import javax.persistence.metamodel.Type;
11 import org.junit.Rule;
12 import org.junit.Test;
13 import org.junit.rules.ExpectedException;
15 import dst.ass1.jpa.ORMService;
16 import dst.ass1.jpa.model.IAddress;
19 * Tests if IAddress is implemented correctly.
21 public class Ass1_1_1_05Test {
24 public ORMService orm = new ORMService();
27 public ExpectedException expectedException = ExpectedException.none();
30 public void addressEntityCannotBePersisted() {
31 IAddress address = orm.getModelFactory().createAddress();
32 assertNotNull(address);
34 address.setCity("city1");
35 address.setStreet("street1");
36 address.setZipCode("zip1");
38 expectedException.expect(IllegalArgumentException.class);
39 orm.getEntityManager().persist(address);
43 public void addressIsEmbeddableType() {
44 IAddress address = orm.getModelFactory().createAddress();
45 assertNotNull(address);
47 ManagedType<?> type = orm.getEntityManager().getMetamodel().managedType(address.getClass());
49 assertThat(type.getPersistenceType(), is(Type.PersistenceType.EMBEDDABLE));
53 public void addressHasNoTable() throws Exception {
54 assertFalse(orm.getDatabaseGateway().isTable("ADDRESS"));