package org.infinispan.query.dsl.embedded; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import org.infinispan.Cache; import org.infinispan.commons.api.BasicCache; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.cache.Index; import org.infinispan.query.Search; import org.infinispan.query.dsl.QueryFactory; import org.infinispan.query.dsl.embedded.testdomain.ModelFactory; import org.infinispan.query.dsl.embedded.testdomain.hsearch.ModelFactoryHS; import org.infinispan.test.MultipleCacheManagersTest; import org.infinispan.test.fwk.CleanupAfterTest; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.infinispan.transaction.TransactionMode; /** * Base for the DSL query tests. * * @author rvansa@redhat.com * @author anistor@redhat.com * @since 6.0 */ @CleanupAfterTest public abstract class AbstractQueryDslTest extends MultipleCacheManagersTest { protected final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); protected AbstractQueryDslTest() { DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT")); } protected Date makeDate(String dateStr) throws ParseException { return DATE_FORMAT.parse(dateStr); } /** * To be overridden by subclasses. */ protected BasicCache<Object, Object> getCacheForWrite() { return getCacheForQuery(); } /** * To be overridden by subclasses. */ protected BasicCache<Object, Object> getCacheForQuery() { return cache(0); } /** * To be overridden by subclasses that need a different query factory. */ protected QueryFactory getQueryFactory() { return Search.getQueryFactory((Cache) getCacheForQuery()); } /** * To be overridden by subclasses if they need to use a different model implementation. */ protected ModelFactory getModelFactory() { return ModelFactoryHS.INSTANCE; } @Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder cfg = TestCacheManagerFactory.getDefaultCacheConfiguration(true); cfg.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .indexing().index(Index.ALL) .addIndexedEntity(getModelFactory().getUserImplClass()) .addIndexedEntity(getModelFactory().getAccountImplClass()) .addIndexedEntity(getModelFactory().getTransactionImplClass()) .addProperty("default.directory_provider", "ram") .addProperty("lucene_version", "LUCENE_CURRENT"); createClusteredCaches(1, cfg); } @Override protected void clearContent() { // Don't clear, this is destroying the index } }