Fix bugs in mock Lucene objects functionality.
This commit is contained in:
@@ -21,6 +21,7 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.anyMap;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
@@ -2362,7 +2363,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
|
||||
return mockLuceneIndexFactory;
|
||||
});
|
||||
|
||||
when(mockLuceneIndexFactory.setFields(any(String[].class))).thenAnswer(invocation -> {
|
||||
when(mockLuceneIndexFactory.setFields(ArgumentMatchers.<String[]>any())).thenAnswer(invocation -> {
|
||||
|
||||
Object[] fieldsArgument = invocation.getArguments();
|
||||
|
||||
@@ -2378,27 +2379,21 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport {
|
||||
return mockLuceneIndexFactory;
|
||||
});
|
||||
|
||||
when(mockLuceneIndexFactory.setFields(any(Map.class))).thenAnswer(invocation -> {
|
||||
when(mockLuceneIndexFactory.setFields(anyMap())).thenAnswer(invocation -> {
|
||||
|
||||
Map<String, Analyzer> fieldAnalyzersArgument = invocation.getArgument(0);
|
||||
|
||||
fieldAnalyzers.clear();
|
||||
fieldAnalyzers.putAll(CollectionUtils.nullSafeMap(fieldAnalyzers));
|
||||
fieldAnalyzers.putAll(CollectionUtils.nullSafeMap(fieldAnalyzersArgument));
|
||||
|
||||
return mockLuceneIndexFactory;
|
||||
});
|
||||
|
||||
when(mockLuceneIndexFactory.setLuceneSerializer(any(LuceneSerializer.class))).thenAnswer(invocation -> {
|
||||
|
||||
Optional.ofNullable(invocation.<LuceneSerializer>getArgument(0))
|
||||
.map(it -> {
|
||||
luceneSerializer.set(it);
|
||||
return it;
|
||||
})
|
||||
.orElseGet(() -> {
|
||||
luceneSerializer.set(null);
|
||||
return null;
|
||||
});
|
||||
LuceneSerializer<?> luceneSerializerArgument = invocation.getArgument(0);
|
||||
|
||||
luceneSerializer.set(luceneSerializerArgument);
|
||||
|
||||
return mockLuceneIndexFactory;
|
||||
});
|
||||
|
||||
@@ -22,6 +22,9 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -33,8 +36,14 @@ import org.apache.geode.cache.RegionService;
|
||||
import org.apache.geode.cache.asyncqueue.AsyncEventListener;
|
||||
import org.apache.geode.cache.asyncqueue.AsyncEventQueue;
|
||||
import org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory;
|
||||
import org.apache.geode.cache.lucene.LuceneIndex;
|
||||
import org.apache.geode.cache.lucene.LuceneIndexFactory;
|
||||
import org.apache.geode.cache.lucene.LuceneSerializer;
|
||||
import org.apache.geode.cache.lucene.LuceneService;
|
||||
import org.apache.geode.cache.server.ClientSubscriptionConfig;
|
||||
|
||||
import org.apache.lucene.analysis.Analyzer;
|
||||
|
||||
/**
|
||||
* Unit Tests for {@link GemFireMockObjectsSupport}.
|
||||
*
|
||||
@@ -129,6 +138,46 @@ public class GemFireMockObjectsSupportUnitTests {
|
||||
assertThat(mockClientSubscriptionConfig.getEvictionPolicy()).isEqualTo("entry");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mockLuceneFunctionality() {
|
||||
|
||||
Cache mockCache = mock(Cache.class);
|
||||
|
||||
LuceneService mockLuceneService = GemFireMockObjectsSupport.mockLuceneService(mockCache);
|
||||
|
||||
assertThat(mockLuceneService).isNotNull();
|
||||
assertThat(mockLuceneService.getAllIndexes()).isEmpty();
|
||||
assertThat(mockLuceneService.getCache()).isEqualTo(mockCache);
|
||||
|
||||
LuceneSerializer<?> mockLuceneSerializer = mock(LuceneSerializer.class);
|
||||
|
||||
LuceneIndexFactory mockLuceneIndexFactory = mockLuceneService.createIndexFactory();
|
||||
|
||||
assertThat(mockLuceneIndexFactory).isNotNull();
|
||||
|
||||
Analyzer mockAnalyzer = mock(Analyzer.class);
|
||||
|
||||
Map<String, Analyzer> fieldAnalyzers = new HashMap<>();
|
||||
|
||||
fieldAnalyzers.put("fieldZero", mockAnalyzer);
|
||||
|
||||
mockLuceneIndexFactory.setFields("FieldOne", "FieldTwo");
|
||||
mockLuceneIndexFactory.setLuceneSerializer(mockLuceneSerializer);
|
||||
mockLuceneIndexFactory.addField("FieldThree");
|
||||
mockLuceneIndexFactory.setFields(fieldAnalyzers);
|
||||
mockLuceneIndexFactory.create("MockLuceneIndex", "/Test");
|
||||
|
||||
LuceneIndex mockLuceneIndex = mockLuceneService.getIndex("MockLuceneIndex", "/Test");
|
||||
|
||||
assertThat(mockLuceneIndex).isNotNull();
|
||||
assertThat(mockLuceneIndex.getRegionPath()).isEqualTo("/Test");
|
||||
assertThat(mockLuceneIndex.getName()).isEqualTo("MockLuceneIndex");
|
||||
assertThat(mockLuceneIndex.getLuceneSerializer()).isEqualTo(mockLuceneSerializer);
|
||||
assertThat(mockLuceneIndex.getFieldNames()).containsExactlyInAnyOrder("FieldOne", "FieldTwo", "FieldThree");
|
||||
assertThat(mockLuceneIndex.getFieldAnalyzers()).isEqualTo(fieldAnalyzers);
|
||||
assertThat(mockLuceneService.getAllIndexes()).containsExactly(mockLuceneIndex);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public void mockSubRegionIsCorrect() {
|
||||
|
||||
Reference in New Issue
Block a user