/******************************************************************************* * 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 * 04/30/2009-2.0 Michael O'Brien * - 266912: JPA 2.0 Metamodel API (part of the JSR-317 EJB 3.1 Criteria API) * ******************************************************************************/ package org.eclipse.persistence.testing.tests.jpa.metamodel; import javax.persistence.EntityManagerFactory; import javax.persistence.metamodel.Metamodel; import junit.framework.Test; import junit.framework.TestSuite; /** * These tests verify the JPA 2.0 Metamodel API. * The framework is as follows: * - initialize persistence unit * - start a transaction * - persist some entities to test * - verify metamodel * - delete test entities created above (to reset the database) * - close persistence unit * */ public class EntityManagerFactoryImplTest extends MetamodelTest { public EntityManagerFactoryImplTest() { super(); } public EntityManagerFactoryImplTest(String name) { super(name); } public void setUp() { super.setUp(); } public static Test suite() { TestSuite suite = new TestSuite("EntityManagerImplFactoryTest"); if(!isJPA10() && !isOnServer()) { suite.addTest(new EntityManagerFactoryImplTest("testIllegalStateExceptionOnClosedEntityManagerFactory")); } return suite; } public void testIllegalStateExceptionOnClosedEntityManagerFactory() { EntityManagerFactory emf = null; Metamodel metamodel = null; boolean exceptionThrown = false; try { emf = initialize(true); // Verify an ISE if the emf is closed emf.close(); closeEntityManagerFactory(PERSISTENCE_UNIT_NAME); try { metamodel = emf.getMetamodel(); } catch (IllegalStateException e) { exceptionThrown = true; assertNull(metamodel); assertTrue(e instanceof IllegalStateException); //System.out.println("_Disclaimer: The above IllegalStateException is expected as part of testing."); //e.printStackTrace(); } assertTrue(exceptionThrown); } catch (Exception e) { e.printStackTrace(); } finally { // Close the EMF - to clear the cache for subsequent tests resetEntityManagerFactory(); } } /* * The following functions from Ch 5 of the 17 Mar 2009 JSR-317 JPA 2.0 API PFD are tested here. * EntityManagerFactoryImpl public CriteriaBuilder getCriteriaBuilder() { public Metamodel getMetamodel() { */ }