/*
* 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.errorhandling;
import org.hibernate.search.cfg.Environment;
import org.hibernate.search.cfg.spi.SearchConfiguration;
import org.hibernate.search.exception.ErrorContext;
import org.hibernate.search.exception.ErrorHandler;
import org.hibernate.search.spi.SearchIntegrator;
import org.hibernate.search.spi.SearchIntegratorBuilder;
import org.hibernate.search.testsupport.TestForIssue;
import org.hibernate.search.testsupport.setup.SearchConfigurationForTest;
import org.junit.Test;
import static org.junit.Assert.assertSame;
/**
* Test for making sure error handlers can also be passed as instances rather than via their FQN.
*
* @author Gunnar Morling
*/
@TestForIssue(jiraKey = "HSEARCH-1624")
public class ErrorHandlerGivenAsInstanceTest {
@Test
public void canPassErrorHandlerInstanceToConfiguration() {
// given
ErrorHandler errorHandler = new MyErrorHandler();
// when
SearchConfiguration cfg = getSearchConfiguration( errorHandler );
SearchIntegrator searchIntegrator = new SearchIntegratorBuilder().configuration( cfg ).buildSearchIntegrator();
// then
assertSame( errorHandler, searchIntegrator.getErrorHandler() );
}
private SearchConfiguration getSearchConfiguration(ErrorHandler errorHandler) {
SearchConfigurationForTest cfg = new SearchConfigurationForTest();
cfg.getProperties().put( Environment.ERROR_HANDLER, errorHandler );
return cfg;
}
private static class MyErrorHandler implements ErrorHandler {
@Override
public void handle(ErrorContext context) {
}
@Override
public void handleException(String errorMsg, Throwable exception) {
}
}
}