package org.needle4j.db; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import org.junit.Rule; import org.junit.Test; import org.needle4j.junit.DatabaseRule; import org.needle4j.junit.NeedleRule; public class DatabaseRuleEntityTransactionInjectionTest { @Rule public NeedleRule needleRule = new NeedleRule().withOuter(new DatabaseRule()); @Inject private EntityManager entityManager; @Inject private EntityTransaction entityTransaction; @Test public void testEntityTransaction() { entityTransaction.begin(); User user1 = new User(); entityManager.persist(user1); entityTransaction.commit(); entityManager.clear(); entityTransaction.begin(); User user2 = new User(); entityManager.persist(user2); entityTransaction.commit(); entityManager.clear(); User user1FromDb = entityManager.find(User.class, user1.getId()); assertEquals(user1.getId(), user1FromDb.getId()); assertNotEquals(user1, user1FromDb); User user2FromDb = entityManager.find(User.class, user2.getId()); assertEquals(user2.getId(), user2FromDb.getId()); assertNotEquals(user2, user2FromDb); } }