/*******************************************************************************
* Copyright 2012 Thomas Letsch
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*******************************************************************************/
package org.vaadin.addons.javaee.container.jpa;
import static org.junit.Assert.fail;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.After;
import org.junit.Before;
import com.googlecode.javaeeutils.jpa.manager.EntityFinder;
import com.googlecode.javaeeutils.jpa.manager.EntityManagerLocator;
public class BaseEntityTest {
private EntityManagerFactory emFactory;
protected EntityManager em;
protected TestEntity createTestEntity() {
TestEntity testEntity = new TestEntity(TestEntity.ORIGINAL_TEST_STRING);
em.persist(testEntity);
em.flush();
TestEntity savedEntity = EntityFinder.getSavedEntity(testEntity);
return savedEntity;
}
@Before
public void setUp() throws Exception {
try {
emFactory = Persistence.createEntityManagerFactory("JavaEEAddonTestUnit");
em = emFactory.createEntityManager();
EntityManagerLocator.put(em);
em.getTransaction().begin();
} catch (Exception ex) {
ex.printStackTrace();
fail("Exception during JPA EntityManager instanciation.");
}
}
@After
public void tearDown() throws Exception {
em.flush();
em.getTransaction().rollback();
EntityManagerLocator.reset();
if (em != null) {
em.close();
}
if (emFactory != null) {
emFactory.close();
}
}
}