package org.infinispan.query.backend; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import org.hibernate.search.backend.spi.WorkType; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.cache.Index; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.query.impl.ComponentRegistryUtils; import org.infinispan.query.impl.DefaultSearchWorkCreator; import org.infinispan.query.test.Person; import org.infinispan.test.SingleCacheManagerTest; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.testng.annotations.Test; /** * @author gustavonalle * @since 7.0 */ @Test(groups = "functional", testName = "query.backend.CustomSearchWorkCreatorTest") public class CustomSearchWorkCreatorTest extends SingleCacheManagerTest { @Test @SuppressWarnings("unchecked") public void testCustomWorkCreator() throws Exception { DefaultSearchWorkCreator<Object> customSearchWorkCreator = spy(new DefaultSearchWorkCreator<>()); QueryInterceptor queryInterceptor = ComponentRegistryUtils.getQueryInterceptor(cache); queryInterceptor.setSearchWorkCreator(customSearchWorkCreator); KeyTransformationHandler keyTransformationHandler = queryInterceptor.getKeyTransformationHandler(); Integer key = 1; Person value = new Person("john", "blurb", 30); cache.put(key, value); verify(customSearchWorkCreator).createPerEntityWorks(value, keyTransformationHandler.keyToString(key), WorkType.UPDATE); } @Override protected EmbeddedCacheManager createCacheManager() throws Exception { ConfigurationBuilder cfg = getDefaultStandaloneCacheConfig(false); cfg.indexing().index(Index.ALL) .addIndexedEntity(Person.class) .addProperty("default.directory_provider", "ram") .addProperty("lucene_version", "LUCENE_CURRENT"); return TestCacheManagerFactory.createCacheManager(cfg); } }