diff --git a/src/main/java/org/springframework/data/gemfire/client/ClientRegionFactoryBean.java b/src/main/java/org/springframework/data/gemfire/client/ClientRegionFactoryBean.java index c1a0a2c9..362add1b 100644 --- a/src/main/java/org/springframework/data/gemfire/client/ClientRegionFactoryBean.java +++ b/src/main/java/org/springframework/data/gemfire/client/ClientRegionFactoryBean.java @@ -90,6 +90,8 @@ public class ClientRegionFactoryBean extends RegionLookupFactoryBean } } s = ClientRegionShortcut.LOCAL; + } else { + s = shortcut; } ClientRegionFactory factory = c.createClientRegionFactory(s); diff --git a/src/test/java/org/springframework/data/gemfire/client/ClientRegionFactoryBeanTest.java b/src/test/java/org/springframework/data/gemfire/client/ClientRegionFactoryBeanTest.java new file mode 100644 index 00000000..5c69a6b6 --- /dev/null +++ b/src/test/java/org/springframework/data/gemfire/client/ClientRegionFactoryBeanTest.java @@ -0,0 +1,40 @@ +package org.springframework.data.gemfire.client; + +import static org.junit.Assert.assertSame; + +import org.junit.Test; +import org.mockito.Mockito; + +import com.gemstone.gemfire.cache.Region; +import com.gemstone.gemfire.cache.client.ClientCache; +import com.gemstone.gemfire.cache.client.ClientRegionFactory; +import com.gemstone.gemfire.cache.client.ClientRegionShortcut; + +public class ClientRegionFactoryBeanTest { + + @Test + public void testLookupFallbackFailingToUseProvidedShortcut() + throws Exception { + ClientRegionFactoryBean fb = new ClientRegionFactoryBean(); + fb.setShortcut(ClientRegionShortcut.CACHING_PROXY); + + String regionName = "regionName"; + ClientCache cache = Mockito.mock(ClientCache.class); + + @SuppressWarnings("unchecked") + ClientRegionFactory factory = Mockito + .mock(ClientRegionFactory.class); + Mockito.when( + cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)) + .thenReturn(factory); + + @SuppressWarnings("unchecked") + Region region = Mockito.mock(Region.class); + Mockito.when(factory.create(regionName)).thenReturn(region); + + Region result = fb.lookupFallback(cache, regionName); + + assertSame(region, result); + } + +}