/* * Hibernate Search, full-text search for your domain model * * 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.search.test; import java.util.HashMap; import java.util.Map; import org.hibernate.search.test.util.ImmutableTestConfiguration; import org.hibernate.search.test.util.TestConfiguration; import org.junit.After; /** * A base class for tests of the initialization process. * * <p>The main difference with {@link SearchTestBase} is that the test itself does not implement * {@link TestConfiguration}, which enables using different configurations for different test methods. * <p>When subclassing this class, Hibernate Search initialization must be triggered manually by calling * {@link #init(TestConfiguration)}. * <p>This is most commonly used to assert exceptions are thrown in specific cases. * * @author Yoann Rodiere */ public abstract class SearchInitializationTestBase { private DefaultTestResourceManager testResourceManager; /** * @param configuration The test configuration to use when initializing. * @see ImmutableTestConfiguration */ protected void init(TestConfiguration configuration) { if ( testResourceManager == null ) { testResourceManager = new DefaultTestResourceManager( configuration, this.getClass() ); } testResourceManager.openSessionFactory(); } /** * Initialize with no particular settings * @param annotatedClasses The classes to search for annotations */ protected void init(Class<?>... annotatedClasses) { Map<String, Object> settings = new HashMap<>(); init( new ImmutableTestConfiguration( settings, annotatedClasses ) ); } /** * @return the testResourceManager, or null if there isn't any (i.e. if {@link #init(TestConfiguration)} * hasn't been called yet or if {@link #tearDown()} has been called) */ protected TestResourceManager getTestResourceManager() { return testResourceManager; } @After public void tearDown() throws Exception { try { if ( testResourceManager != null ) { testResourceManager.defaultTearDown(); } } finally { testResourceManager = null; } } }