diff --git a/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/template/DeclaredRegionTemplateAutoConfigurationIntegrationTests.java b/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/template/DeclaredRegionTemplateAutoConfigurationIntegrationTests.java index 54e195f9..13e35efe 100644 --- a/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/template/DeclaredRegionTemplateAutoConfigurationIntegrationTests.java +++ b/spring-geode-autoconfigure/src/test/java/org/springframework/geode/boot/autoconfigure/template/DeclaredRegionTemplateAutoConfigurationIntegrationTests.java @@ -66,9 +66,17 @@ public class DeclaredRegionTemplateAutoConfigurationIntegrationTests extends Int @Qualifier("exampleTemplate") private GemfireTemplate exampleTemplate; + @Autowired + @Qualifier("testRegionTemplate") + private GemfireTemplate testRegionTemplate; + @Resource(name = "Example") private Region exampleRegion; + @Resource(name = "TestRegion") + @SuppressWarnings("rawtypes") + private Region testRegion; + @Test public void exampleRegionIsPresent() { @@ -83,6 +91,21 @@ public class DeclaredRegionTemplateAutoConfigurationIntegrationTests extends Int assertThat(this.exampleTemplate.getRegion()).isEqualTo(this.exampleRegion); } + @Test + @SuppressWarnings("unchecked") + public void testRegionIsPresent() { + + assertThat(this.testRegion).isNotNull(); + assertThat(this.testRegion.getName()).isEqualTo("TestRegion"); + } + + @Test + public void testRegionTemplateIsPresent() { + + assertThat(this.testRegionTemplate).isNotNull(); + assertThat(this.testRegionTemplate.getRegion()).isEqualTo(this.testRegion); + } + @SpringBootApplication @EnableGemFireMockObjects static class TestConfiguration { @@ -102,5 +125,19 @@ public class DeclaredRegionTemplateAutoConfigurationIntegrationTests extends Int public Object testBean(@Qualifier("exampleTemplate") GemfireTemplate exampleTemplate) { return "TEST"; } + + // NOTE: Raw type definition is deliberate to ensure the generic FactoryBean and Region signature + // can be properly autowired/injected into the auto-configured GemfireTemplate for this Region! + @Bean("TestRegion") + @SuppressWarnings("rawtypes") + public ClientRegionFactoryBean testRegion(GemFireCache gemfireCache) { + + ClientRegionFactoryBean clientRegion = new ClientRegionFactoryBean(); + + clientRegion.setCache(gemfireCache); + clientRegion.setShortcut(ClientRegionShortcut.PROXY); + + return clientRegion; + } } }