/*
* 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.beanvalidation;
import java.net.URL;
import java.util.Collections;
import javax.persistence.EntityManagerFactory;
import javax.validation.Validation;
import javax.validation.ValidatorFactory;
import org.hibernate.jpa.AvailableSettings;
import org.hibernate.jpa.HibernatePersistenceProvider;
import org.hibernate.jpa.boot.spi.Bootstrap;
import org.hibernate.jpa.boot.spi.EntityManagerFactoryBuilder;
import org.hibernate.jpa.test.jee.OrmVersionTest;
import org.hibernate.testing.junit4.BaseUnitTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertSame;
/**
* Test injection of ValidatorFactory using WF/Hibernate 2-phase boot process
*
* @author Steve Ebersole
*/
public class ValidatorFactory2PhaseInjectionTest extends BaseUnitTestCase {
private ValidatorFactory vf;
@Before
public void before() {
vf = Validation.byDefaultProvider().configure().buildValidatorFactory();
}
@After
public void after() {
if ( vf != null ) {
vf.close();
}
}
@Test
public void testInjectionAvailabilityFromEmf() {
EntityManagerFactoryBuilder emfb = Bootstrap.getEntityManagerFactoryBuilder(
new OrmVersionTest.PersistenceUnitInfoImpl( "my-test" ) {
@Override
public URL getPersistenceUnitRootUrl() {
// just get any known url...
return HibernatePersistenceProvider.class.getResource( "/org/hibernate/jpa/persistence_1_0.xsd" );
}
},
Collections.emptyMap()
);
emfb.withValidatorFactory( vf );
EntityManagerFactory emf = emfb.build();
try {
assertSame( vf, emf.getProperties().get( AvailableSettings.VALIDATION_FACTORY ) );
}
finally {
emf.close();
}
}
}