/* * 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.configuration; import org.hibernate.search.engine.impl.MutableSearchFactory; import org.hibernate.search.testsupport.junit.SkipOnElasticsearch; import org.hibernate.search.testsupport.setup.SearchConfigurationForTest; import org.junit.Test; import org.junit.experimental.categories.Category; import static org.junit.Assert.assertTrue; /** * Test to force deleteByTerm on backend * * @author gustavonalle */ @Category(SkipOnElasticsearch.class) // The DeleteByTerm matter is specific to Lucene public class DeleteByTermEnforcementTest extends BaseConfigurationTest { @Test public void testDefaultValue() { SearchConfigurationForTest cfg = new SearchConfigurationForTest(); cfg.setDeleteByTermEnforced( true ); verifyDeleteByTermEnforced( cfg ); } private void verifyDeleteByTermEnforced(SearchConfigurationForTest cfg) { try (MutableSearchFactory sf = getMutableSearchFactoryWithSingleEntity( cfg )) { assertTrue( extractWorkspace( sf, Document.class ).isDeleteByTermEnforced() ); // trigger a SearchFactory rebuild: sf.addClasses( Dvd.class, Book.class ); // single terms should always be marked as safe since we are forcing it assertTrue( extractWorkspace( sf, Book.class ).isDeleteByTermEnforced() ); assertTrue( extractWorkspace( sf, Dvd.class ).isDeleteByTermEnforced() ); assertTrue( extractWorkspace( sf, Document.class ).isDeleteByTermEnforced() ); } } }