blob: 65ab25c879e998ae704b02dd39b6cf0bb0cab1b3 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// 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 jakarta.persistence.EntityManagerFactory;
import jakarta.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);
}
@Override
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() {
*/
}