From b839720cd3ee6a36a33297d4e901497fb7fa7c09 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Sun, 22 Sep 2013 15:03:03 -0500 Subject: [PATCH] HHH-8540 - Throw ISE on attempts to create EntityManager using any form of createEntityManager accepting SynchronizationType if RESOURCE_LOCAL --- .../test/factory/SynchronizationTypeTest.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/factory/SynchronizationTypeTest.java diff --git a/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/factory/SynchronizationTypeTest.java b/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/factory/SynchronizationTypeTest.java new file mode 100644 index 0000000000..aa4a1a4c92 --- /dev/null +++ b/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/factory/SynchronizationTypeTest.java @@ -0,0 +1,70 @@ +/* + * Hibernate, Relational Persistence for Idiomatic Java + * + * Copyright (c) 2013, Red Hat Inc. or third-party contributors as + * indicated by the @author tags or express copyright attribution + * statements applied by the authors. All third-party contributions are + * distributed under license by Red Hat Inc. + * + * This copyrighted material is made available to anyone wishing to use, modify, + * copy, or redistribute it subject to the terms and conditions of the GNU + * Lesser General Public License, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this distribution; if not, write to: + * Free Software Foundation, Inc. + * 51 Franklin Street, Fifth Floor + * Boston, MA 02110-1301 USA + */ +package org.hibernate.jpa.test.factory; + +import javax.persistence.SynchronizationType; + +import java.util.Collections; + +import org.hibernate.jpa.test.BaseEntityManagerFunctionalTestCase; + +import org.junit.Test; + +import static org.junit.Assert.fail; + +/** + * @author Steve Ebersole + */ +public class SynchronizationTypeTest extends BaseEntityManagerFunctionalTestCase { + @Test + public void testPassingSynchronizationType() { + try { + entityManagerFactory().createEntityManager( SynchronizationType.SYNCHRONIZED ); + fail( "Call should have throw ISE" ); + } + catch (IllegalStateException expected) { + } + + try { + entityManagerFactory().createEntityManager( SynchronizationType.UNSYNCHRONIZED ); + fail( "Call should have throw ISE" ); + } + catch (IllegalStateException expected) { + } + + try { + entityManagerFactory().createEntityManager( SynchronizationType.SYNCHRONIZED, Collections.emptyMap() ); + fail( "Call should have throw ISE" ); + } + catch (IllegalStateException expected) { + } + + try { + entityManagerFactory().createEntityManager( SynchronizationType.UNSYNCHRONIZED, Collections.emptyMap() ); + fail( "Call should have throw ISE" ); + } + catch (IllegalStateException expected) { + } + } +}