No curso de Teste de integração com DAO e SQL, utilizamos o @Before para criar uma transação e o @After para fazer o rollback e não salvar no banco de dados. Mas como fazer isso em um projeto que utiliza EJB e CDI, onde meu objeto EntityManager é injetado pelo CDI através do @PersistenceContext?
@Before public void antes() { // inicia transacao session.beginTransaction(); }
@After public void depois() { // faz o rollback session.getTransaction().rollback(); session.close(); }
public class AddressDAO {
@PersistenceContext private EntityManager manager;
public Address save(Address address){ if(address.isNew()){ manager.persist(address); return address; } return manager.merge(address); } }
public class AddressDAOTest {
// Como injetar o EntityManager aqui? }