/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. 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: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.tests.jpa.xml.merge.incompletemappings.owning; import java.util.ArrayList; import javax.persistence.EntityManager; import junit.framework.*; import org.eclipse.persistence.sessions.DatabaseSession; import org.eclipse.persistence.testing.models.jpa.xml.merge.incompletemappings.owning.AdvancedTableCreator; import org.eclipse.persistence.testing.models.jpa.xml.merge.incompletemappings.owning.Employee; import org.eclipse.persistence.testing.models.jpa.xml.merge.incompletemappings.owning.ModelExamples; import org.eclipse.persistence.testing.models.jpa.xml.merge.incompletemappings.owning.SecurityBadge; import org.eclipse.persistence.testing.framework.junit.JUnitTestCase; /** * JUnit test case(s) for the TopLink EntityMappingsXMLProcessor. */ public class EntityMappingsIncompleteOwningJUnitTestCase extends JUnitTestCase { private static Integer employeeId; public EntityMappingsIncompleteOwningJUnitTestCase() { super(); } public EntityMappingsIncompleteOwningJUnitTestCase(String name) { super(name); } public void setUp() {try{super.setUp();}catch(Exception x){}} public static Test suite() { TestSuite suite = new TestSuite("Owning Model"); suite.addTest(new EntityMappingsIncompleteOwningJUnitTestCase("testSetup")); suite.addTest(new EntityMappingsIncompleteOwningJUnitTestCase("testCreateEmployee")); suite.addTest(new EntityMappingsIncompleteOwningJUnitTestCase("testReadEmployee")); suite.addTest(new EntityMappingsIncompleteOwningJUnitTestCase("testUpdateEmployee")); suite.addTest(new EntityMappingsIncompleteOwningJUnitTestCase("testDeleteEmployee")); return suite; } /** * The setup is done as a test, both to record its failure, and to allow execution in the server. */ public void testSetup() { DatabaseSession session = JUnitTestCase.getServerSession(); new AdvancedTableCreator().replaceTables(session); clearCache(); } public void testCreateEmployee() { EntityManager em = createEntityManager(); beginTransaction(em); try { Employee employee = ModelExamples.employeeExample1(); ArrayList projects = new ArrayList(); projects.add(ModelExamples.projectExample1()); projects.add(ModelExamples.projectExample2()); employee.setProjects(projects); employee.setAddress(ModelExamples.addressExample1()); em.persist(employee); employeeId = employee.getId(); commitTransaction(em); } catch (RuntimeException e) { if (isTransactionActive(em)){ rollbackTransaction(em); } closeEntityManager(em); throw e; } } public void testDeleteEmployee() { EntityManager em = createEntityManager(); beginTransaction(em); try { em.remove(em.find(Employee.class, employeeId)); commitTransaction(em); } catch (RuntimeException e) { if (isTransactionActive(em)){ rollbackTransaction(em); } closeEntityManager(em); throw e; } assertTrue("Error deleting Employee", em.find(Employee.class, employeeId) == null); } public void testReadEmployee() { Employee employee = createEntityManager().find(Employee.class, employeeId); assertTrue("Error reading Employee", employee.getId() == employeeId); } public void testUpdateEmployee() { EntityManager em = createEntityManager(); beginTransaction(em); try { Employee employee = em.find(Employee.class, employeeId); employee.setSecurityBadge(new SecurityBadge(69)); em.merge(employee); commitTransaction(em); } catch (RuntimeException e) { if (isTransactionActive(em)){ rollbackTransaction(em); } closeEntityManager(em); throw e; } clearCache(); Employee newEmployee = em.find(Employee.class, employeeId); assertTrue("Error updating Employee's Security Badge", newEmployee.getSecurityBadge().getBadgeNumber() == 69); } }