diff --git a/gradle.properties b/gradle.properties index ad1053ea..472fb487 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ antlrVersion=2.7.7 aspectjVersion=1.8.9 assertjVersion=3.6.2 cdiVersion=1.0 -geodeVersion=1.1.0 +geodeVersion=1.2.0-SNAPSHOT hamcrestVersion=1.3 jacksonVersion=2.7.6 junitVersion=4.12 @@ -11,11 +11,11 @@ mockitoVersion=2.7.19 multiThreadedtcVersion=1.01 openwebbeansVersion=1.2.8 servletApiVersion=2.5 -shiroVersion=1.3.1 +shiroVersion=1.3.2 slf4jVersion=1.7.21 spring.range="[5.0.0, 6.0.0)" springVersion=5.0.0.M3 springDataBuildVersion=2.0.0.BUILD-SNAPSHOT springDataCommonsVersion=2.0.0.BUILD-SNAPSHOT springShellVersion=1.2.0.RELEASE -version=1.1.0.BUILD-SNAPSHOT +version=1.2.0.BUILD-SNAPSHOT diff --git a/pom.xml b/pom.xml index c9e708ef..e1d9726c 100644 --- a/pom.xml +++ b/pom.xml @@ -13,16 +13,16 @@ org.springframework.data spring-data-geode - 1.1.0.BUILD-SNAPSHOT + 1.2.0.BUILD-SNAPSHOT Spring Data Geode SGF 2.7.7 - 1.3.1 + 1.3.2 3.6.2 - 1.1.0 + 1.2.0-SNAPSHOT 1.01 2.5 2.0.0.BUILD-SNAPSHOT diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneAccessor.java b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneAccessor.java index 618574fe..9ea844a6 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneAccessor.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneAccessor.java @@ -17,7 +17,6 @@ package org.springframework.data.gemfire.search.lucene; -import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray; import static org.springframework.data.gemfire.util.SpringUtils.safeGetValue; import java.util.Optional; @@ -131,29 +130,16 @@ public abstract class LuceneAccessor extends LuceneOperationsSupport implements return resolveLuceneService().createLuceneQueryFactory(); } - /** - * Creates an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}. - * - * @param projectionFields {@link String} array containing the fields of the object to project. - * @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}. - * @see org.apache.geode.cache.lucene.LuceneQueryFactory - * @see #createLuceneQueryFactory(int, int, String...) - */ - public LuceneQueryFactory createLuceneQueryFactory(String... projectionFields) { - return createLuceneQueryFactory(DEFAULT_RESULT_LIMIT, DEFAULT_PAGE_SIZE, projectionFields); - } - /** * Creates an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}. * * @param resultLimit limit to the number of results returned by the query. - * @param projectionFields {@link String} array containing the fields of the object to project. * @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}. * @see org.apache.geode.cache.lucene.LuceneQueryFactory - * @see #createLuceneQueryFactory(int, int, String...) + * @see #createLuceneQueryFactory(int, int) */ - public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, String... projectionFields) { - return createLuceneQueryFactory(resultLimit, DEFAULT_PAGE_SIZE, projectionFields); + public LuceneQueryFactory createLuceneQueryFactory(int resultLimit) { + return createLuceneQueryFactory(resultLimit, DEFAULT_PAGE_SIZE); } /** @@ -161,14 +147,11 @@ public abstract class LuceneAccessor extends LuceneOperationsSupport implements * * @param resultLimit limit to the number of results returned by the query. * @param pageSize number of results appearing on a single page. - * @param projectionFields {@link String} array containing the fields of the object to project. * @return an instance of the {@link LuceneQueryFactory} to create and execute {@link LuceneQuery Lucene queries}. * @see #createLuceneQueryFactory() */ - @SuppressWarnings("deprecation") - public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, int pageSize, String... projectionFields) { - return createLuceneQueryFactory().setResultLimit(resultLimit).setPageSize(pageSize) - .setProjectionFields(nullSafeArray(projectionFields, String.class)); + public LuceneQueryFactory createLuceneQueryFactory(int resultLimit, int pageSize) { + return createLuceneQueryFactory().setResultLimit(resultLimit).setPageSize(pageSize); } /** diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBean.java b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBean.java index ebc08979..b4d1d4a4 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBean.java @@ -31,6 +31,7 @@ import java.util.Optional; import org.apache.geode.cache.GemFireCache; import org.apache.geode.cache.Region; import org.apache.geode.cache.lucene.LuceneIndex; +import org.apache.geode.cache.lucene.LuceneIndexFactory; import org.apache.geode.cache.lucene.LuceneService; import org.apache.geode.cache.lucene.LuceneServiceProvider; import org.apache.lucene.analysis.Analyzer; @@ -49,6 +50,8 @@ import org.springframework.util.StringUtils; * Spring {@link FactoryBean} used to construct {@link LuceneIndex Lucene Indexes} on application domain object fields. * * @author John Blum + * @see org.springframework.beans.factory.BeanFactory + * @see org.springframework.beans.factory.BeanFactoryAware * @see org.springframework.beans.factory.BeanNameAware * @see org.springframework.beans.factory.DisposableBean * @see org.springframework.beans.factory.FactoryBean @@ -56,8 +59,10 @@ import org.springframework.util.StringUtils; * @see org.apache.geode.cache.GemFireCache * @see org.apache.geode.cache.Region * @see org.apache.geode.cache.lucene.LuceneIndex + * @see org.apache.geode.cache.lucene.LuceneIndexFactory * @see org.apache.geode.cache.lucene.LuceneService * @see org.apache.geode.cache.lucene.LuceneServiceProvider + * @see org.apache.lucene.analysis.Analyzer * @since 1.1.0 */ @SuppressWarnings("unused") @@ -107,8 +112,7 @@ public class LuceneIndexFactoryBean implements FactoryBean, * @param regionPath {@link String} containing the fully-qualified pathname to * the {@link GemFireCache} {@link Region}. * @return a new instance of {@link LuceneIndex} with the given {@code indexName} on the named {@link Region}. - * @see org.apache.geode.cache.lucene.LuceneService#createIndex(String, String, Map) - * @see org.apache.geode.cache.lucene.LuceneService#createIndex(String, String, String...) + * @see org.apache.geode.cache.lucene.LuceneIndexFactory#create(String, String) * @see org.apache.geode.cache.lucene.LuceneService#getIndex(String, String) * @see #resolveLuceneService() * @see #getFieldAnalyzers() @@ -121,10 +125,11 @@ public class LuceneIndexFactoryBean implements FactoryBean, Map fieldAnalyzers = getFieldAnalyzers(); if (isEmpty(fieldAnalyzers)) { - luceneService.createIndex(indexName, regionPath, asArray(resolveFields(getFields()))); + luceneService.createIndexFactory().setFields(asArray(resolveFields(getFields()))) + .create(indexName, regionPath); } else { - luceneService.createIndex(indexName, regionPath, fieldAnalyzers); + luceneService.createIndexFactory().setFields(fieldAnalyzers).create(indexName, regionPath); } return luceneService.getIndex(indexName, regionPath); @@ -150,7 +155,7 @@ public class LuceneIndexFactoryBean implements FactoryBean, LuceneIndex luceneIndex = getObject(); if (isLuceneIndexDestroyable(luceneIndex)) { - resolveLuceneService().destroyIndex(luceneIndex); + resolveLuceneService().destroyIndex(luceneIndex.getName(), luceneIndex.getRegionPath()); } } @@ -219,6 +224,16 @@ public class LuceneIndexFactoryBean implements FactoryBean, return (!isEmpty(fields) ? fields : Collections.singletonList(LuceneService.REGION_VALUE_FIELD)); } + /** + * Resolves the appropriate {@link LuceneIndexFactory} from the {@link LuceneService}. + * + * @return a newly created instance of the {@link LuceneIndexFactory} from the resolved {@link LuceneService}. + * @see #resolveLuceneService() + */ + protected LuceneIndexFactory resolveLuceneIndexFactory() { + return resolveLuceneService().createIndexFactory(); + } + /** * Resolves the {@link LuceneService} used by this {@link FactoryBean} to create the {@link LuceneIndex}. * diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneOperations.java b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneOperations.java index 87eb8deb..ef0d8663 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneOperations.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneOperations.java @@ -50,16 +50,13 @@ public interface LuceneOperations { * @param query {@link String} containing the Lucene query to execute. * @param defaultField {@link String} specifying the default field used in Lucene queries when a field * is not explicitly defined in the Lucene query clause. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link List} of {@link LuceneResultStruct} containing the query results. * @see org.apache.geode.cache.lucene.LuceneResultStruct - * @see #query(String, String, int, String...) + * @see #query(String, String, int) * @see java.util.List */ - default List> query(String query, String defaultField, - String... projectionFields) { - - return query(query, defaultField, DEFAULT_RESULT_LIMIT, projectionFields); + default List> query(String query, String defaultField) { + return query(query, defaultField, DEFAULT_RESULT_LIMIT); } /** @@ -71,13 +68,11 @@ public interface LuceneOperations { * @param defaultField {@link String} specifying the default field used in Lucene queries when a field * is not explicitly defined in the Lucene query clause. * @param resultLimit limit on the number of query results to return. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link List} of {@link LuceneResultStruct} containing the query results. * @see org.apache.geode.cache.lucene.LuceneResultStruct * @see java.util.List */ - List> query(String query, String defaultField, - int resultLimit, String... projectionFields); + List> query(String query, String defaultField, int resultLimit); /** * Executes the given Lucene {@link String query} with a limit on the number of results returned @@ -90,12 +85,10 @@ public interface LuceneOperations { * is not explicitly defined in the Lucene query clause. * @param resultLimit limit on the number of query results to return. * @param pageSize number of results per page. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link PageableLuceneQueryResults} data structure containing the results of the Lucene query. * @see org.apache.geode.cache.lucene.PageableLuceneQueryResults */ - PageableLuceneQueryResults query(String query, String defaultField, - int resultLimit, int pageSize, String... projectionFields); + PageableLuceneQueryResults query(String query, String defaultField, int resultLimit, int pageSize); /** * Executes the given Lucene {@link String query}. @@ -104,17 +97,14 @@ public interface LuceneOperations { * @param {@link Class} type of the value. * @param queryProvider {@link LuceneQueryProvider} is a provider implementation supplying the Lucene query * to execute as well as de/serialize to distribute across the cluster. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link List} of {@link LuceneResultStruct} containing the query results. * @see org.apache.geode.cache.lucene.LuceneQueryProvider * @see org.apache.geode.cache.lucene.LuceneResultStruct - * @see #query(LuceneQueryProvider, int, String...) + * @see #query(LuceneQueryProvider, int) * @see java.util.List */ - default List> query(LuceneQueryProvider queryProvider, - String... projectionFields) { - - return query(queryProvider, DEFAULT_RESULT_LIMIT, projectionFields); + default List> query(LuceneQueryProvider queryProvider) { + return query(queryProvider, DEFAULT_RESULT_LIMIT); } /** @@ -125,14 +115,12 @@ public interface LuceneOperations { * @param queryProvider {@link LuceneQueryProvider} is a provider implementation supplying the Lucene query * to execute as well as de/serialize to distribute across the cluster. * @param resultLimit limit on the number of query results to return. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link List} of {@link LuceneResultStruct} containing the query results. * @see org.apache.geode.cache.lucene.LuceneQueryProvider * @see org.apache.geode.cache.lucene.LuceneResultStruct * @see java.util.List */ - List> query(LuceneQueryProvider queryProvider, - int resultLimit, String... projectionFields); + List> query(LuceneQueryProvider queryProvider, int resultLimit); /** * Executes the given Lucene {@link String query} with a limit on the number of results returned @@ -144,13 +132,11 @@ public interface LuceneOperations { * to execute as well as de/serialize to distribute across the cluster. * @param resultLimit limit on the number of query results to return. * @param pageSize number of results per page. - * @param projectionFields array of {@link String} values specifying the query projection. * @return a {@link PageableLuceneQueryResults} data structure containing the results of the Lucene query. * @see org.apache.geode.cache.lucene.LuceneQueryProvider * @see org.apache.geode.cache.lucene.PageableLuceneQueryResults */ - PageableLuceneQueryResults query(LuceneQueryProvider queryProvider, - int resultLimit, int pageSize, String... projectionFields); + PageableLuceneQueryResults query(LuceneQueryProvider queryProvider, int resultLimit, int pageSize); /** * Executes the given Lucene {@link String query} returning a {@link Collection} of keys diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneTemplate.java b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneTemplate.java index a62da561..598e035b 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneTemplate.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/LuceneTemplate.java @@ -36,6 +36,7 @@ import org.springframework.data.gemfire.search.lucene.support.LuceneAccessorSupp * @author John Blum * @see org.springframework.data.gemfire.search.lucene.LuceneAccessor * @see org.springframework.data.gemfire.search.lucene.LuceneOperations + * @see org.springframework.data.gemfire.search.lucene.support.LuceneAccessorSupport * @see org.apache.geode.cache.Region * @see org.apache.geode.cache.lucene.LuceneIndex * @see org.apache.geode.cache.lucene.LuceneQuery @@ -91,13 +92,11 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera * @inheritDoc */ @Override - public List> query(String query, String defaultField, - int resultLimit, String... projectionFields) { - + public List> query(String query, String defaultField, int resultLimit) { String indexName = resolveIndexName(); String regionPath = resolveRegionPath(); - LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, projectionFields); + LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit); LuceneQuery queryWrapper = queryFactory.create(indexName, regionPath, query, defaultField); @@ -109,12 +108,12 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera */ @Override public PageableLuceneQueryResults query(String query, String defaultField, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { String indexName = resolveIndexName(); String regionPath = resolveRegionPath(); - LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize, projectionFields); + LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize); LuceneQuery queryWrapper = queryFactory.create(indexName, regionPath, query, defaultField); @@ -125,13 +124,11 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera * @inheritDoc */ @Override - public List> query(LuceneQueryProvider queryProvider, - int resultLimit, String... projectionFields) { - + public List> query(LuceneQueryProvider queryProvider, int resultLimit) { String indexName = resolveIndexName(); String regionPath = resolveRegionPath(); - LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, projectionFields); + LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit); LuceneQuery queryWrapper = queryFactory.create(indexName, regionPath, queryProvider); @@ -143,12 +140,12 @@ public class LuceneTemplate extends LuceneAccessorSupport implements LuceneOpera */ @Override public PageableLuceneQueryResults query(LuceneQueryProvider queryProvider, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { String indexName = resolveIndexName(); String regionPath = resolveRegionPath(); - LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize, projectionFields); + LuceneQueryFactory queryFactory = createLuceneQueryFactory(resultLimit, pageSize); LuceneQuery queryWrapper = queryFactory.create(indexName, regionPath, queryProvider); diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneAccessorSupport.java b/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneAccessorSupport.java index 7df24176..3ea79ed2 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneAccessorSupport.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneAccessorSupport.java @@ -85,9 +85,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor { * @inheritDoc */ @Override - public List> query(String query, String defaultField, - int resultLimit, String... projectionFields) { - + public List> query(String query, String defaultField, int resultLimit) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -96,7 +94,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor { */ @Override public PageableLuceneQueryResults query(String query, String defaultField, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -105,9 +103,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor { * @inheritDoc */ @Override - public List> query(LuceneQueryProvider queryProvider, - int resultLimit, String... projectionFields) { - + public List> query(LuceneQueryProvider queryProvider, int resultLimit) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -116,7 +112,7 @@ public abstract class LuceneAccessorSupport extends LuceneAccessor { */ @Override public PageableLuceneQueryResults query(LuceneQueryProvider queryProvider, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } diff --git a/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneOperationsSupport.java b/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneOperationsSupport.java index d8ff1f9c..f3850c05 100644 --- a/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneOperationsSupport.java +++ b/src/main/java/org/springframework/data/gemfire/search/lucene/support/LuceneOperationsSupport.java @@ -43,9 +43,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations { * @inheritDoc */ @Override - public List> query(String query, String defaultField, - int resultLimit, String... projectionFields) { - + public List> query(String query, String defaultField, int resultLimit) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -54,7 +52,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations { */ @Override public PageableLuceneQueryResults query(String query, String defaultField, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -63,9 +61,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations { * @inheritDoc */ @Override - public List> query(LuceneQueryProvider queryProvider, - int resultLimit, String... projectionFields) { - + public List> query(LuceneQueryProvider queryProvider, int resultLimit) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } @@ -74,7 +70,7 @@ public abstract class LuceneOperationsSupport implements LuceneOperations { */ @Override public PageableLuceneQueryResults query(LuceneQueryProvider queryProvider, - int resultLimit, int pageSize, String... projectionFields) { + int resultLimit, int pageSize) { throw newUnsupportedOperationException(RuntimeExceptionFactory.NOT_IMPLEMENTED); } diff --git a/src/test/java/org/springframework/data/gemfire/config/annotation/EnableIndexingConfigurationUnitTests.java b/src/test/java/org/springframework/data/gemfire/config/annotation/EnableIndexingConfigurationUnitTests.java index 2a5e90a0..ad8746f6 100644 --- a/src/test/java/org/springframework/data/gemfire/config/annotation/EnableIndexingConfigurationUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/config/annotation/EnableIndexingConfigurationUnitTests.java @@ -22,6 +22,7 @@ import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -36,12 +37,12 @@ import org.apache.geode.cache.RegionAttributes; import org.apache.geode.cache.RegionFactory; import org.apache.geode.cache.RegionShortcut; import org.apache.geode.cache.lucene.LuceneIndex; +import org.apache.geode.cache.lucene.LuceneIndexFactory; import org.apache.geode.cache.lucene.LuceneService; import org.apache.geode.cache.query.Index; import org.apache.geode.cache.query.QueryService; import org.junit.After; import org.junit.Test; -import org.mockito.Matchers; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.springframework.context.ConfigurableApplicationContext; @@ -208,6 +209,10 @@ public class EnableIndexingConfigurationUnitTests { LuceneService luceneService() { LuceneService mockLuceneService = mock(LuceneService.class); + LuceneIndexFactory mockLuceneIndexFactory = mock(LuceneIndexFactory.class); + + doReturn(mockLuceneIndexFactory).when(mockLuceneService).createIndexFactory(); + doAnswer(invocation -> { LuceneIndex mockLuceneIndex = mock(LuceneIndex.class); @@ -220,7 +225,7 @@ public class EnableIndexingConfigurationUnitTests { when(mockLuceneService.getIndex(eq(indexName), eq(regionPath))).thenReturn(mockLuceneIndex); return mockLuceneIndex; - }).when(mockLuceneService).createIndex(anyString(), anyString(), Matchers.anyVararg()); + }).when(mockLuceneIndexFactory).create(anyString(), anyString()); return mockLuceneService; } diff --git a/src/test/java/org/springframework/data/gemfire/config/xml/LuceneNamespaceUnitTests.java b/src/test/java/org/springframework/data/gemfire/config/xml/LuceneNamespaceUnitTests.java index df7637f3..d2fcc4dd 100644 --- a/src/test/java/org/springframework/data/gemfire/config/xml/LuceneNamespaceUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/config/xml/LuceneNamespaceUnitTests.java @@ -21,8 +21,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.isA; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; @@ -35,6 +35,7 @@ import java.util.Optional; import org.apache.geode.cache.GemFireCache; import org.apache.geode.cache.lucene.LuceneIndex; +import org.apache.geode.cache.lucene.LuceneIndexFactory; import org.apache.geode.cache.lucene.LuceneService; import org.apache.lucene.analysis.Analyzer; import org.junit.Test; @@ -97,9 +98,9 @@ public class LuceneNamespaceUnitTests { String... keys) { assertLuceneIndex(index, name, regionPath); - assertThat(index.getFieldNames()).isEmpty(); assertThat(index.getFieldAnalyzers()).hasSize(keys.length); assertThat(index.getFieldAnalyzers()).containsKeys(keys); + assertThat(index.getFieldNames()).isEmpty(); } protected void assertLuceneIndexWithFields(LuceneIndex index, String name, String regionPath, String... fieldNames) { @@ -112,14 +113,8 @@ public class LuceneNamespaceUnitTests { @SuppressWarnings({ "deprecation", "unchecked" }) public void luceneServiceConfigurationAndInteractionsAreCorrect() { assertThat(this.luceneService).isNotNull(); - - verify(this.luceneService, times(1)) - .createIndex(eq("IndexOne"), eq("/Example"), eq("fieldOne"), eq("fieldTwo")); - - verify(this.luceneService, times(1)) - .createIndex(eq("IndexTwo"), eq("/AnotherExample"), isA(Map.class)); - - verify(this.luceneService, never()).destroyIndex(any(LuceneIndex.class)); + verify(this.luceneService, times(2)).createIndexFactory(); + verify(this.luceneService, never()).destroyIndex(anyString(), anyString()); } @Test @@ -157,7 +152,6 @@ public class LuceneNamespaceUnitTests { public static class MockLuceneServiceFactoryBean implements FactoryBean, InitializingBean { - @SuppressWarnings("all") private GemFireCache gemfireCache; private LuceneService luceneService; @@ -173,20 +167,25 @@ public class LuceneNamespaceUnitTests { return Optional.ofNullable(this.luceneService).orElseGet(() -> { this.luceneService = mock(LuceneService.class); - Answer mockLuceneIndex = newMockLuceneIndex(this.luceneService); + when(this.luceneService.createIndexFactory()).thenAnswer(invocation -> { + LuceneIndexFactory mockLuceneIndexFactory = mock(LuceneIndexFactory.class); - doAnswer(mockLuceneIndex).when(this.luceneService) - .createIndex(anyString(), anyString(), (String[]) any()); + doReturn(mockLuceneIndexFactory).when(mockLuceneIndexFactory).setFields((String[]) any()); + doReturn(mockLuceneIndexFactory).when(mockLuceneIndexFactory).setFields(any(Map.class)); - doAnswer(mockLuceneIndex).when(this.luceneService) - .createIndex(anyString(), anyString(), isA(Map.class)); + Answer mockLuceneIndex = mockLuceneIndex(this.luceneService); + + doAnswer(mockLuceneIndex).when(mockLuceneIndexFactory).create(anyString(), anyString()); + + return mockLuceneIndexFactory; + }); return this.luceneService; }); } @SuppressWarnings("unchecked") - private Answer newMockLuceneIndex(LuceneService mockLuceneService) { + private Answer mockLuceneIndex(LuceneService mockLuceneService) { return (invocationOnMock) -> { String indexName = invocationOnMock.getArgument(0); String regionPath = invocationOnMock.getArgument(1); diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneAccessorUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneAccessorUnitTests.java index 5350b3b1..40372ca0 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneAccessorUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneAccessorUnitTests.java @@ -23,7 +23,6 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.isA; import static org.hamcrest.Matchers.nullValue; import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyVararg; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -133,65 +132,36 @@ public class LuceneAccessorUnitTests { @Test @SuppressWarnings("deprecation") - public void createLuceneQueryFactoryWithProjectionFields() { + public void createLuceneQueryFactoryWithResultLimit() { doReturn(mockLuceneService).when(luceneAccessor).resolveLuceneService(); when(mockLuceneService.createLuceneQueryFactory()).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setPageSize(anyInt())).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setProjectionFields(anyVararg())).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setResultLimit(anyInt())).thenReturn(mockLuceneQueryFactory); - assertThat(luceneAccessor.createLuceneQueryFactory("fieldOne", "fieldTwo")) - .isEqualTo(mockLuceneQueryFactory); - - verify(luceneAccessor).resolveLuceneService(); - verify(mockLuceneService, times(1)).createLuceneQueryFactory(); - verify(mockLuceneQueryFactory, times(1)) - .setResultLimit(eq(LuceneAccessor.DEFAULT_RESULT_LIMIT)); - verify(mockLuceneQueryFactory, times(1)) - .setPageSize(eq(LuceneAccessor.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)) - .setProjectionFields(eq("fieldOne"), eq("fieldTwo")); - } - - @Test - @SuppressWarnings("deprecation") - public void createLuceneQueryFactoryWithResultLimitAndProjectionFields() { - doReturn(mockLuceneService).when(luceneAccessor).resolveLuceneService(); - when(mockLuceneService.createLuceneQueryFactory()).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setPageSize(anyInt())).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setProjectionFields(anyVararg())).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setResultLimit(anyInt())).thenReturn(mockLuceneQueryFactory); - - assertThat(luceneAccessor.createLuceneQueryFactory(1000, "fieldOne", "fieldTwo")) - .isEqualTo(mockLuceneQueryFactory); + assertThat(luceneAccessor.createLuceneQueryFactory(1000)).isEqualTo(mockLuceneQueryFactory); verify(luceneAccessor).resolveLuceneService(); verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(1000)); verify(mockLuceneQueryFactory, times(1)) .setPageSize(eq(LuceneAccessor.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)) - .setProjectionFields(eq("fieldOne"), eq("fieldTwo")); } @Test @SuppressWarnings("deprecation") - public void createLuceneQueryFactoryWithResultLimitPageSizeAndProjectionFields() { + public void createLuceneQueryFactoryWithResultLimitAndPageSize() { doReturn(mockLuceneService).when(luceneAccessor).resolveLuceneService(); when(mockLuceneService.createLuceneQueryFactory()).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setPageSize(anyInt())).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setProjectionFields(anyVararg())).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setResultLimit(anyInt())).thenReturn(mockLuceneQueryFactory); - assertThat(luceneAccessor.createLuceneQueryFactory(1000, 20, - "fieldOne", "fieldTwo")).isEqualTo(mockLuceneQueryFactory); + assertThat(luceneAccessor.createLuceneQueryFactory(1000, 20)) + .isEqualTo(mockLuceneQueryFactory); verify(luceneAccessor).resolveLuceneService(); verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(1000)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(20)); - verify(mockLuceneQueryFactory, times(1)) - .setProjectionFields(eq("fieldOne"), eq("fieldTwo")); } @Test diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBeanUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBeanUnitTests.java index 294b2f80..2f872bc5 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBeanUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneIndexFactoryBeanUnitTests.java @@ -23,7 +23,6 @@ import static org.hamcrest.Matchers.nullValue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.isNull; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; @@ -40,6 +39,7 @@ import java.util.Map; import org.apache.geode.cache.GemFireCache; import org.apache.geode.cache.Region; import org.apache.geode.cache.lucene.LuceneIndex; +import org.apache.geode.cache.lucene.LuceneIndexFactory; import org.apache.geode.cache.lucene.LuceneService; import org.apache.lucene.analysis.Analyzer; import org.junit.Before; @@ -84,6 +84,9 @@ public class LuceneIndexFactoryBeanUnitTests { @Mock private LuceneIndex mockLuceneIndex; + @Mock + private LuceneIndexFactory mockLuceneIndexFactory; + @Mock private LuceneService mockLuceneService; @@ -93,9 +96,14 @@ public class LuceneIndexFactoryBeanUnitTests { private LuceneIndexFactoryBean factoryBean; @Before + @SuppressWarnings("unchecked") public void setup() { factoryBean = spy(new LuceneIndexFactoryBean()); + doReturn(mockLuceneService).when(factoryBean).resolveLuceneService(eq(mockCache)); + doReturn(mockLuceneIndexFactory).when(mockLuceneService).createIndexFactory(); + doReturn(mockLuceneIndexFactory).when(mockLuceneIndexFactory).setFields((String[]) any()); + doReturn(mockLuceneIndexFactory).when(mockLuceneIndexFactory).setFields(any(Map.class)); } @Test @@ -121,7 +129,7 @@ public class LuceneIndexFactoryBeanUnitTests { } @Test - public void afterPropertiesSetThrowsIllegalStateExceptionIndexNameNotSet() throws Exception { + public void afterPropertiesSetThrowsIllegalStateExceptionWhenIndexNameNotSet() throws Exception { exception.expect(IllegalStateException.class); exception.expectCause(is(nullValue(Throwable.class))); exception.expectMessage("indexName was not properly initialized"); @@ -140,8 +148,11 @@ public class LuceneIndexFactoryBeanUnitTests { assertThat(factoryBean.getLuceneService()).isSameAs(mockLuceneService); assertThat(factoryBean.createIndex("ExampleIndex", "/Example")).isEqualTo(mockLuceneIndex); - verify(mockLuceneService, times(1)) - .createIndex(eq("ExampleIndex"), eq("/Example"), eq(LuceneService.REGION_VALUE_FIELD)); + verify(mockLuceneService, times(1)).createIndexFactory(); + verify(mockLuceneIndexFactory, times(1)) + .setFields(eq(LuceneService.REGION_VALUE_FIELD)); + verify(mockLuceneIndexFactory, times(1)) + .create(eq("ExampleIndex"), eq("/Example")); verify(mockLuceneService, times(1)) .getIndex(eq("ExampleIndex"), eq("/Example")); } @@ -160,8 +171,10 @@ public class LuceneIndexFactoryBeanUnitTests { assertThat(factoryBean.getLuceneService()).isSameAs(mockLuceneService); assertThat(factoryBean.createIndex("ExampleIndex", "/Example")).isEqualTo(mockLuceneIndex); - verify(mockLuceneService, times(1)) - .createIndex(eq("ExampleIndex"), eq("/Example"), eq(fieldAnalyzers)); + verify(mockLuceneService, times(1)).createIndexFactory(); + verify(mockLuceneIndexFactory, times(1)).setFields(eq(fieldAnalyzers)); + verify(mockLuceneIndexFactory, times(1)) + .create(eq("ExampleIndex"), eq("/Example")); verify(mockLuceneService, times(1)) .getIndex(eq("ExampleIndex"), eq("/Example")); } @@ -178,8 +191,11 @@ public class LuceneIndexFactoryBeanUnitTests { assertThat(factoryBean.getLuceneService()).isSameAs(mockLuceneService); assertThat(factoryBean.createIndex("ExampleIndex", "/Example")).isEqualTo(mockLuceneIndex); - verify(mockLuceneService, times(1)) - .createIndex(eq("ExampleIndex"), eq("/Example"), eq("fieldOne"), eq("fieldTwo")); + verify(mockLuceneService, times(1)).createIndexFactory(); + verify(mockLuceneIndexFactory, times(1)) + .setFields(eq("fieldOne"), eq("fieldTwo")); + verify(mockLuceneIndexFactory, times(1)) + .create(eq("ExampleIndex"), eq("/Example")); verify(mockLuceneService, times(1)) .getIndex(eq("ExampleIndex"), eq("/Example")); } @@ -194,11 +210,14 @@ public class LuceneIndexFactoryBeanUnitTests { assertThat(factoryBean.getLuceneService()).isSameAs(mockLuceneService); doReturn(mockLuceneIndex).when(factoryBean).getObject(); + doReturn("MockIndex").when(mockLuceneIndex).getName(); + doReturn("MockRegion").when(mockLuceneIndex).getRegionPath(); factoryBean.destroy(); verify(factoryBean, times(1)).getObject(); - verify(mockLuceneService, times(1)).destroyIndex(eq(mockLuceneIndex)); + verify(mockLuceneService, times(1)) + .destroyIndex(eq("MockIndex"), eq("MockRegion")); } @Test @@ -215,7 +234,7 @@ public class LuceneIndexFactoryBeanUnitTests { factoryBean.destroy(); verify(factoryBean, times(1)).getObject(); - verify(mockLuceneService, never()).destroyIndex(any(LuceneIndex.class)); + verify(mockLuceneService, never()).destroyIndex(anyString(), anyString()); } @Test @@ -232,7 +251,7 @@ public class LuceneIndexFactoryBeanUnitTests { factoryBean.destroy(); verify(factoryBean, times(1)).getObject(); - verify(mockLuceneService, never()).destroyIndex(isNull(LuceneIndex.class)); + verify(mockLuceneService, never()).destroyIndex(anyString(), anyString()); } @Test @@ -346,6 +365,17 @@ public class LuceneIndexFactoryBeanUnitTests { .isEqualTo(Collections.singletonList(LuceneService.REGION_VALUE_FIELD)); } + @Test + public void resolveLuceneIndexFactoryCallsLuceneServiceCreateIndexFactory() { + factoryBean.setCache(mockCache); + + doReturn(mockLuceneIndexFactory).when(mockLuceneService).createIndexFactory(); + + assertThat(factoryBean.resolveLuceneIndexFactory()).isEqualTo(mockLuceneIndexFactory); + + verify(mockLuceneService, times(1)).createIndexFactory(); + } + @Test public void resolveLuceneServiceReturnsConfiguredLuceneService() { factoryBean.setBeanFactory(mockBeanFactory); diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneOperationsUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneOperationsUnitTests.java index e4ab4147..870070b2 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneOperationsUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneOperationsUnitTests.java @@ -19,7 +19,6 @@ package org.springframework.data.gemfire.search.lucene; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.anyVararg; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -54,24 +53,23 @@ public class LuceneOperationsUnitTests { @Test public void stringQueryCallsQueryWithResultLimit() { - when(mockLuceneOperations.query(anyString(), anyString(), anyVararg())).thenCallRealMethod(); + when(mockLuceneOperations.query(anyString(), anyString())).thenCallRealMethod(); - mockLuceneOperations.query("title : Up Shit Creek Without a Paddle", "title", - "content"); + mockLuceneOperations.query("title : Up Shit Creek Without a Paddle", "title"); verify(mockLuceneOperations, times(1)).query( eq("title : Up Shit Creek Without a Paddle"), eq("title"), - eq(LuceneOperations.DEFAULT_RESULT_LIMIT), eq("content")); + eq(LuceneOperations.DEFAULT_RESULT_LIMIT)); } @Test public void queryProviderQueryCallsQueryWithResultLimit() { - when(mockLuceneOperations.query(any(LuceneQueryProvider.class), anyVararg())).thenCallRealMethod(); + when(mockLuceneOperations.query(any(LuceneQueryProvider.class))).thenCallRealMethod(); - mockLuceneOperations.query(mockLuceneQueryProvider, "content"); + mockLuceneOperations.query(mockLuceneQueryProvider); verify(mockLuceneOperations, times(1)).query(eq(mockLuceneQueryProvider), - eq(LuceneOperations.DEFAULT_RESULT_LIMIT), eq("content")); + eq(LuceneOperations.DEFAULT_RESULT_LIMIT)); } @Test @@ -116,6 +114,6 @@ public class LuceneOperationsUnitTests { eq(mockLuceneQueryProvider), eq(LuceneOperations.DEFAULT_RESULT_LIMIT)); } - abstract class TestLuceneOperations implements LuceneOperations { - } + abstract class TestLuceneOperations implements LuceneOperations { } + } diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneTemplateUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneTemplateUnitTests.java index b29df7ed..a6de6688 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneTemplateUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/LuceneTemplateUnitTests.java @@ -22,7 +22,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.anyVararg; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.isA; import static org.mockito.Mockito.doReturn; @@ -63,6 +62,7 @@ import org.mockito.junit.MockitoJUnitRunner; * @see org.apache.geode.cache.lucene.LuceneQueryFactory * @see org.apache.geode.cache.lucene.LuceneQueryProvider * @see org.apache.geode.cache.lucene.LuceneResultStruct + * @see org.apache.geode.cache.lucene.LuceneService * @see org.apache.geode.cache.lucene.PageableLuceneQueryResults * @since 1.0.0 */ @@ -100,7 +100,6 @@ public class LuceneTemplateUnitTests { when(mockLuceneService.createLuceneQueryFactory()).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setPageSize(anyInt())).thenReturn(mockLuceneQueryFactory); - when(mockLuceneQueryFactory.setProjectionFields(anyVararg())).thenReturn(mockLuceneQueryFactory); when(mockLuceneQueryFactory.setResultLimit(anyInt())).thenReturn(mockLuceneQueryFactory); } @@ -115,8 +114,7 @@ public class LuceneTemplateUnitTests { doReturn("/Example").when(luceneTemplate).resolveRegionPath(); List> results = luceneTemplate.query( - "title : Up Shit Creek Without a Paddle", "title", 100, - "content"); + "title : Up Shit Creek Without a Paddle", "title", 100); assertThat(results).isNotNull(); assertThat(results).hasSize(2); @@ -129,7 +127,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(eq("content")); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq("title : Up Shit Creek Without a Paddle"), eq("title")); verify(mockLuceneQuery, times(1)).findResults(); @@ -146,8 +143,7 @@ public class LuceneTemplateUnitTests { doReturn("/Example").when(luceneTemplate).resolveRegionPath(); PageableLuceneQueryResults results = luceneTemplate.query( - "title : Up Shit Creek Without a Paddle", "title", 100, 20, - "content"); + "title : Up Shit Creek Without a Paddle", "title", 100, 20); assertThat(results).isSameAs(mockPageableLuceneQueryResults); @@ -158,7 +154,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(20)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(eq("content")); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq("title : Up Shit Creek Without a Paddle"), eq("title")); verify(mockLuceneQuery, times(1)).findPages(); @@ -174,8 +169,8 @@ public class LuceneTemplateUnitTests { doReturn("TestIndex").when(luceneTemplate).resolveIndexName(); doReturn("/Example").when(luceneTemplate).resolveRegionPath(); - List> results = luceneTemplate.query(mockLuceneQueryProvider, - 100, "content"); + List> results = + luceneTemplate.query(mockLuceneQueryProvider, 100); assertThat(results).isNotNull(); assertThat(results).hasSize(2); @@ -188,7 +183,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(eq("content")); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq(mockLuceneQueryProvider)); verify(mockLuceneQuery, times(1)).findResults(); @@ -205,7 +199,7 @@ public class LuceneTemplateUnitTests { doReturn("/Example").when(luceneTemplate).resolveRegionPath(); PageableLuceneQueryResults results = luceneTemplate.query(mockLuceneQueryProvider, - 100, 20, "content"); + 100, 20); assertThat(results).isSameAs(mockPageableLuceneQueryResults); @@ -216,7 +210,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(20)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(eq("content")); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq(mockLuceneQueryProvider)); verify(mockLuceneQuery, times(1)).findPages(); @@ -246,7 +239,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq("title : Up Shit Creek Without a Paddle"), eq("title")); verify(mockLuceneQuery, times(1)).findKeys(); @@ -275,7 +267,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq(mockLuceneQueryProvider)); verify(mockLuceneQuery, times(1)).findKeys(); @@ -305,7 +296,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq("title : Up Shit Creek Without a Paddle"), eq("title")); verify(mockLuceneQuery, times(1)).findValues(); @@ -334,7 +324,6 @@ public class LuceneTemplateUnitTests { verify(mockLuceneService, times(1)).createLuceneQueryFactory(); verify(mockLuceneQueryFactory, times(1)).setResultLimit(eq(100)); verify(mockLuceneQueryFactory, times(1)).setPageSize(eq(LuceneOperations.DEFAULT_PAGE_SIZE)); - verify(mockLuceneQueryFactory, times(1)).setProjectionFields(); verify(mockLuceneQueryFactory, times(1)).create(eq("TestIndex"), eq("/Example"), eq(mockLuceneQueryProvider)); verify(mockLuceneQuery, times(1)).findValues(); diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/ProjectingLuceneTemplateUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/ProjectingLuceneTemplateUnitTests.java index 495f542d..5547fe50 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/ProjectingLuceneTemplateUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/ProjectingLuceneTemplateUnitTests.java @@ -86,7 +86,6 @@ public class ProjectingLuceneTemplateUnitTests { LuceneResultStruct mockLuceneResultStruct = mock(LuceneResultStruct.class, String.format("MockLuceneResultStruct%s", key)); - when(mockLuceneResultStruct.getKey()).thenReturn(key); when(mockLuceneResultStruct.getValue()).thenReturn(value); return mockLuceneResultStruct; diff --git a/src/test/java/org/springframework/data/gemfire/search/lucene/support/LucenePageUnitTests.java b/src/test/java/org/springframework/data/gemfire/search/lucene/support/LucenePageUnitTests.java index 5aa53798..aee34231 100644 --- a/src/test/java/org/springframework/data/gemfire/search/lucene/support/LucenePageUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/search/lucene/support/LucenePageUnitTests.java @@ -75,9 +75,9 @@ public class LucenePageUnitTests { @SuppressWarnings("unchecked") protected LuceneResultStruct mockLuceneResultStruct(K key, V value) { - LuceneResultStruct mockLuceneResultStruct = mock(LuceneResultStruct.class); + LuceneResultStruct mockLuceneResultStruct = + mock(LuceneResultStruct.class, String.format("MockLuceneResultStruct$%1$s", key)); - when(mockLuceneResultStruct.getKey()).thenReturn(key); when(mockLuceneResultStruct.getValue()).thenReturn(value); return mockLuceneResultStruct;