/* * JBoss, Home of Professional Open Source * Copyright 2013 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @authors tag. All rights reserved. */ package org.searchisko.persistence.service; import java.sql.Connection; import java.util.logging.Logger; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.hibernate.Session; import org.hibernate.internal.SessionFactoryImpl; import org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.searchisko.api.testtools.ESRealClientTestBase; /** * Unit test for {@link JpaEntityService} * * @author Vlastimil Elias (velias at redhat dot com) */ public class JpaTestBase extends ESRealClientTestBase { protected Logger logger = Logger.getLogger(JpaTestBase.class.getName()); protected EntityManagerFactory emFactory; protected EntityManager em; protected Connection connection; public DriverManagerConnectionProviderImpl getConnectionProvider() { SessionFactoryImpl factory = (SessionFactoryImpl) em.unwrap(Session.class).getSessionFactory(); return (DriverManagerConnectionProviderImpl) factory.getConnectionProvider(); } @Before public void setUp() throws Exception { try { logger.info("Building JPA EntityManager for unit tests"); emFactory = Persistence.createEntityManagerFactory("testPU"); em = emFactory.createEntityManager(); } catch (Exception ex) { ex.printStackTrace(); Assert.fail("Exception during JPA EntityManager initialization."); } } @After public void tearDown() throws Exception { logger.info("Shutting down Hibernate JPA layer."); if (em != null) { em.close(); } if (emFactory != null) { emFactory.close(); } } }