/*******************************************************************************
* Copyright (c) 2014, 2015 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* 11/04/2014 - Rick Curtis
* - 450010 : Add java se test bucket
* 12/19/2014 - Dalia Abo Sheasha
* - 454917 : Added a test to use the IDENTITY strategy to generate values
******************************************************************************/
package org.eclipse.persistence.jpa.test.basic;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.eclipse.persistence.jpa.test.basic.model.Dog;
import org.eclipse.persistence.jpa.test.basic.model.Employee;
import org.eclipse.persistence.jpa.test.basic.model.Person;
import org.eclipse.persistence.jpa.test.basic.model.XmlFish;
import org.eclipse.persistence.jpa.test.framework.DDLGen;
import org.eclipse.persistence.jpa.test.framework.Emf;
import org.eclipse.persistence.jpa.test.framework.EmfRunner;
import org.eclipse.persistence.jpa.test.framework.Property;
import org.eclipse.persistence.jpa.test.framework.SQLListener;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(EmfRunner.class)
public class TestBasicPersistence {
@Emf(createTables = DDLGen.DROP_CREATE, classes = { Dog.class, XmlFish.class, Person.class, Employee.class }, properties = {
@Property(name = "eclipselink.cache.shared.default", value = "false") }, mappingFiles = { "META-INF/fish-orm.xml" })
private EntityManagerFactory emf;
@SQLListener
List<String> _sql;
@Test
public void activeTransaction() {
Assert.assertNotNull(emf);
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
}
@Test
public void testNonNullEmf() {
Assert.assertNotNull(emf);
}
@Test
public void persistTest() {
if (emf == null)
return;
EntityManager em = emf.createEntityManager();
try {
em.getTransaction().begin();
Person p = new Person();
Dog d = new Dog("Bingo");
p.setDog(d);
d.setOwner(p);
em.persist(p);
em.persist(d);
em.persist(new XmlFish());
em.getTransaction().commit();
em.clear();
Dog foundDog = em.find(Dog.class, d.getId());
foundDog.getOwner();
Assert.assertTrue(_sql.size() > 0);
} finally {
if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
em.close();
}
}
@Test
public void identityStrategyTest() {
if (emf == null)
return;
EntityManager em = emf.createEntityManager();
try {
em.getTransaction().begin();
Employee e = new Employee();
em.persist(e);
em.getTransaction().commit();
em.clear();
Employee foundEmp = em.find(Employee.class, e.getId());
Assert.assertNotNull(foundEmp);
} finally {
if (em.getTransaction().isActive()) {
em.getTransaction().rollback();
}
em.close();
}
}
}