package me.prettyprint.hom; import java.util.UUID; import javax.ejb.Singleton; import javax.ejb.embeddable.EJBContainer; import javax.inject.Inject; import javax.naming.NamingException; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import me.prettyprint.hom.beans.MyTestBean; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.assertEquals; public class JPAEETest extends CassandraTestBase { private static EJBContainer container; @PersistenceContext(unitName = "homEE") private EntityManager em; // jta @Inject private AnEJB ejb; @BeforeClass public static void start() { container = EJBContainer.createEJBContainer(); } @Before public void inject() throws NamingException { container.getContext().bind("inject", this); } @AfterClass public static void stop() { container.close(); } @Test public void testInitializeSaveLoad() { MyTestBean o1 = new MyTestBean(); o1.setBaseId(UUID.randomUUID()); o1.setIntProp1(1); o1.setBoolProp1(Boolean.TRUE); o1.setLongProp1(123L); ejb.persist(o1); MyTestBean o2 = em.find(MyTestBean.class, o1.getBaseId()); assertEquals(o1.getBaseId(), o2.getBaseId()); assertEquals(o1.getIntProp1(), o2.getIntProp1()); assertEquals(o1.isBoolProp1(), o2.isBoolProp1()); assertEquals(o1.getLongProp1(), o2.getLongProp1()); } @Singleton public static class AnEJB { @PersistenceContext(unitName = "homEE") private EntityManager em; // just for the tx context public void persist(Object o) { em.persist(o); } } }