From 317e074c84afc7a4ff01cbef4b37985142d6e9fd Mon Sep 17 00:00:00 2001 From: John Blum Date: Thu, 25 Jul 2019 13:49:45 -0700 Subject: [PATCH] Lazily create the GemFireCache instance when spying on the o.a.g.cache.CacheFactory as well as the o.a.g.cache.client.ClientCacheFactory. This change effectively uses a java.util.function.Supplier to lazily request the 'single' cache instance or create a new cache instance when either CacheFactory.create() or ClientCacheFactory.create() is called. --- .../gemfire/tests/mock/GemFireMockObjectsSupport.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 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 06a0744..aac3815 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 @@ -65,6 +65,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; +import java.util.function.Supplier; import java.util.stream.Collectors; import org.mockito.ArgumentMatchers; @@ -2903,8 +2904,8 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { CacheFactory cacheFactorySpy = spy(cacheFactory); - Cache resolvedMockCache = GemFireMockObjectsSupport.resolveMockedGemFireCache(useSingletonCache) - .orElseGet(() -> { + Supplier resolvedMockCache = () -> + GemFireMockObjectsSupport.resolveMockedGemFireCache(useSingletonCache).orElseGet(() -> { Cache mockCache = mockPeerCache(); @@ -2941,7 +2942,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { doAnswer(invocation -> { storeConfiguration(cacheFactory); - return rememberMockedGemFireCache(constructGemFireObjects(resolvedMockCache), useSingletonCache); + return rememberMockedGemFireCache(constructGemFireObjects(resolvedMockCache.get()), useSingletonCache); }).when(cacheFactorySpy).create(); return cacheFactorySpy; @@ -2955,7 +2956,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { ClientCacheFactory clientCacheFactorySpy = spy(clientCacheFactory); - ClientCache resolvedMockedClientCache = + Supplier resolvedMockedClientCache = () -> GemFireMockObjectsSupport.resolveMockedGemFireCache(useSingletonCache).orElseGet(() -> { ClientCache mockClientCache = mockClientCache(); @@ -3108,7 +3109,7 @@ public abstract class GemFireMockObjectsSupport extends MockObjectsSupport { doAnswer(invocation -> { storeConfiguration(clientCacheFactory); - return rememberMockedGemFireCache(constructGemFireObjects(resolvedMockedClientCache), useSingletonCache); + return rememberMockedGemFireCache(constructGemFireObjects(resolvedMockedClientCache.get()), useSingletonCache); }).when(clientCacheFactorySpy).create(); return clientCacheFactorySpy;