1 package xuml.tools.jaxb.compiler.test;
2
3 import static org.junit.Assert.assertEquals;
4
5 import javax.persistence.EntityManager;
6 import javax.persistence.EntityManagerFactory;
7
8 import many_to_many_association.A;
9 import many_to_many_association.B;
10 import many_to_many_association.C;
11 import many_to_many_association.Context;
12
13 import org.junit.AfterClass;
14 import org.junit.BeforeClass;
15 import org.junit.Test;
16
17 public class BinaryAssociationManyToManyAssociationClassTest {
18
19 @BeforeClass
20 public static void setup() {
21 EntityManagerFactory emf = PersistenceHelper.createEmf("many-to-many-association");
22 Context.setEntityManagerFactory(emf, 10);
23 }
24
25 @AfterClass
26 public static void shutdown() {
27 Context.close();
28 }
29
30
31
32 @Test
33 public void testCanCreateManyToMany() {
34
35 EntityManager em = Context.createEntityManager();
36 em.getTransaction().begin();
37 A a1 = A.create("thing").persist(em);
38 B b1 = B.create("boo").persist(em);
39 B b2 = B.create("boo2").persist(em);
40 C c1 = new C("c1");
41 c1.setDescription("example");
42 c1.setA_R1(a1);
43 c1.setB_R1(b1);
44 a1.getC_R1().add(c1);
45 b1.getC_R1().add(c1);
46
47 C c2 = new C("c2");
48 c2.setDescription("example2");
49 c2.setA_R1(a1);
50 c2.setB_R1(b2);
51 a1.getC_R1().add(c2);
52 b2.getC_R1().add(c2);
53
54 c1.persist(em);
55 c2.persist(em);
56 em.getTransaction().commit();
57
58 em.close();
59
60 em = Context.createEntityManager();
61 assertEquals(2, a1.load(em).getB_R1().size());
62
63 em.close();
64 }
65 }