From 598a520dbe2863fa19f7642b3de5f80d368570e7 Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 10 Sep 2021 16:16:08 -0700 Subject: [PATCH] Refactor mockLuceneIndexFactory(..) method logic. --- .../tests/mock/GemFireMockObjectsSupport.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java index 2404633..b2ca90e 100644 --- a/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java +++ b/spring-data-geode-test/src/main/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupport.java @@ -34,7 +34,6 @@ import static org.springframework.data.gemfire.tests.util.IOUtils.doSafeIo; import static org.springframework.data.gemfire.tests.util.ObjectUtils.rethrowAsRuntimeException; import static org.springframework.data.gemfire.util.ArrayUtils.nullSafeArray; import static org.springframework.data.gemfire.util.CollectionUtils.asSet; -import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeMap; import static org.springframework.data.gemfire.util.CollectionUtils.nullSafeSet; import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.NOT_SUPPORTED; import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newIllegalArgumentException; @@ -2338,7 +2337,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { LuceneIndexFactory mockLuceneIndexFactory = mock(LuceneIndexFactory.class); - AtomicReference luceneSerializerReference = new AtomicReference<>(null); + AtomicReference luceneSerializer = new AtomicReference<>(null); Map fieldAnalyzers = new ConcurrentHashMap<>(); @@ -2363,16 +2362,18 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { return mockLuceneIndexFactory; }); - when(mockLuceneIndexFactory.setFields(ArgumentMatchers.any())).thenAnswer(invocation -> { + when(mockLuceneIndexFactory.setFields(any(String[].class))).thenAnswer(invocation -> { Object[] fieldsArgument = invocation.getArguments(); + String[] fieldNames = Arrays.stream(ArrayUtils.nullSafeArray(fieldsArgument, Object.class)) + .filter(Objects::nonNull) + .map(String::valueOf) + .toArray(size -> new String[size]); + fields.clear(); - Arrays.stream(nullSafeArray(fieldsArgument, Object.class)) - .filter(field -> field instanceof String) - .map(String::valueOf) - .forEach(fields::add); + Collections.addAll(fields, fieldNames); return mockLuceneIndexFactory; }); @@ -2382,7 +2383,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { Map fieldAnalyzersArgument = invocation.getArgument(0); fieldAnalyzers.clear(); - fieldAnalyzers.putAll(nullSafeMap(fieldAnalyzers)); + fieldAnalyzers.putAll(CollectionUtils.nullSafeMap(fieldAnalyzers)); return mockLuceneIndexFactory; }); @@ -2390,12 +2391,12 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { when(mockLuceneIndexFactory.setLuceneSerializer(any(LuceneSerializer.class))).thenAnswer(invocation -> { Optional.ofNullable(invocation.getArgument(0)) - .map(luceneSerializer -> { - luceneSerializerReference.set(luceneSerializer); - return luceneSerializer; + .map(it -> { + luceneSerializer.set(it); + return it; }) .orElseGet(() -> { - luceneSerializerReference.set(null); + luceneSerializer.set(null); return null; }); @@ -2413,7 +2414,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { when(mockLuceneIndex.getFieldAnalyzers()).thenReturn(Collections.unmodifiableMap(fieldAnalyzers)); when(mockLuceneIndex.getFieldNames()).thenAnswer(in -> fields.toArray(new String[fields.size()])); - when(mockLuceneIndex.getLuceneSerializer()).thenAnswer(in -> luceneSerializerReference.get()); + when(mockLuceneIndex.getLuceneSerializer()).thenAnswer(in -> luceneSerializer.get()); when(mockLuceneIndex.getName()).thenReturn(indexName); when(mockLuceneIndex.getRegionPath()).thenReturn(regionPath);