/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.jpa.test.ejb3configuration.id; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.hibernate.jpa.test.PersistenceUnitInfoAdapter; import org.hibernate.jpa.AvailableSettings; import org.hibernate.jpa.boot.spi.Bootstrap; import org.junit.Assert; import org.junit.Test; /** * @author Emmanuel Bernard <emmanuel@hibernate.org> */ public class IdentifierGeneratorStrategyProviderTest { @Test @SuppressWarnings("unchecked") public void testIdentifierGeneratorStrategyProvider() { Map settings = new HashMap(); settings.put( AvailableSettings.IDENTIFIER_GENERATOR_STRATEGY_PROVIDER, FunkyIdentifierGeneratorProvider.class.getName() ); settings.put( AvailableSettings.LOADED_CLASSES, Collections.singletonList( Cable.class ) ); final EntityManagerFactory entityManagerFactory = Bootstrap.getEntityManagerFactoryBuilder( new PersistenceUnitInfoAdapter(), settings ).build(); final EntityManager entityManager = entityManagerFactory.createEntityManager(); try { entityManager.persist( new Cable() ); entityManager.flush(); Assert.fail( "FunkyException should have been thrown when the id is generated" ); } catch ( FunkyException e ) { entityManager.close(); entityManagerFactory.close(); } } }