From dfd2355aa4cf69dcbadb5877d86dcaed77f47464 Mon Sep 17 00:00:00 2001 From: John Blum Date: Sat, 24 Jun 2023 19:06:22 -0700 Subject: [PATCH] Adapt Apache Geode LuceneIndexFactory.setFields(..) mocking to behavior changes between Mockito 4 (based on Java 8) and Mockito 5 (based on Java 11). --- .../tests/mock/GemFireMockObjectsSupport.java | 12 ++++++++++-- .../GemFireMockObjectsSupportIntegrationTests.java | 5 +---- .../mock/GemFireMockObjectsSupportUnitTests.java | 13 ++----------- 3 files changed, 13 insertions(+), 17 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 723097d..dd647e6 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 @@ -172,6 +172,7 @@ import org.springframework.data.gemfire.tests.util.FileSystemUtils; import org.springframework.data.gemfire.tests.util.ObjectUtils; import org.springframework.data.gemfire.util.ArrayUtils; import org.springframework.data.gemfire.util.CollectionUtils; +import org.springframework.data.gemfire.util.JavaVersion; import org.springframework.data.util.ReflectionUtils; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; @@ -2458,7 +2459,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { return mockLuceneIndexFactory; }); - when(mockLuceneIndexFactory.setFields(ArgumentMatchers.any())).thenAnswer(invocation -> { + Answer answer = invocation -> { Object[] fieldsArgument = invocation.getArguments(); @@ -2472,7 +2473,14 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { Collections.addAll(fields, fieldNames); return mockLuceneIndexFactory; - }); + }; + + if (JavaVersion.current().isNewerThanOrEqualTo(JavaVersion.ELEVEN)) { + doAnswer(answer).when(mockLuceneIndexFactory).setFields(any(String[].class)); + } + else { + doAnswer(answer).when(mockLuceneIndexFactory).setFields(ArgumentMatchers.any()); + } when(mockLuceneIndexFactory.setFields(anyMap())).thenAnswer(invocation -> { diff --git a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportIntegrationTests.java b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportIntegrationTests.java index 388aa0a..8d0f6a7 100644 --- a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportIntegrationTests.java +++ b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportIntegrationTests.java @@ -31,16 +31,13 @@ import org.springframework.data.gemfire.tests.integration.IntegrationTestsSuppor import org.springframework.data.gemfire.tests.support.AbstractSecurityManager; /** - * Integration tests for {@link GemFireMockObjectsSupport}. + * Integration Tests for {@link GemFireMockObjectsSupport}. * * @author John Blum * @see java.util.Properties * @see org.junit.Test - * @see org.apache.geode.cache.Cache - * @see org.apache.geode.cache.CacheFactory * @see org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport * @see org.springframework.data.gemfire.tests.mock.GemFireMockObjectsSupport - * @see org.springframework.data.gemfire.tests.support.AbstractSecurityManager * @since 1.0.0 */ public class GemFireMockObjectsSupportIntegrationTests extends IntegrationTestsSupport { diff --git a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java index e80aa1f..54d3c35 100644 --- a/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java +++ b/spring-data-geode-test/src/test/java/org/springframework/data/gemfire/tests/mock/GemFireMockObjectsSupportUnitTests.java @@ -43,25 +43,16 @@ import org.apache.geode.cache.lucene.LuceneService; import org.apache.geode.cache.query.Index; import org.apache.geode.cache.server.ClientSubscriptionConfig; -import org.apache.lucene.analysis.Analyzer; - import org.springframework.data.gemfire.IndexType; +import org.apache.lucene.analysis.Analyzer; + /** * Unit Tests for {@link GemFireMockObjectsSupport}. * * @author John Blum * @see org.junit.Test * @see org.mockito.Mockito - * @see org.apache.geode.cache.AttributesMutator - * @see org.apache.geode.cache.Cache - * @see org.apache.geode.cache.Region - * @see org.apache.geode.cache.RegionAttributes - * @see org.apache.geode.cache.RegionService - * @see org.apache.geode.cache.asyncqueue.AsyncEventListener - * @see org.apache.geode.cache.asyncqueue.AsyncEventQueue - * @see org.apache.geode.cache.asyncqueue.AsyncEventQueueFactory - * @see org.apache.geode.cache.server.ClientSubscriptionConfig * @see org.springframework.data.gemfire.tests.mock.GemFireMockObjectsSupport * @since 1.0.0 */