diff --git a/src/test/java/org/springframework/data/gemfire/ColocatedRegionIntegrationTest.java b/src/test/java/org/springframework/data/gemfire/ColocatedRegionIntegrationTest.java new file mode 100644 index 00000000..e8d11248 --- /dev/null +++ b/src/test/java/org/springframework/data/gemfire/ColocatedRegionIntegrationTest.java @@ -0,0 +1,52 @@ +package org.springframework.data.gemfire; + +import static org.junit.Assert.*; + +import javax.annotation.Resource; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import com.gemstone.gemfire.cache.Region; + +/** + * The ColocatedRegionIntegrationTest class is a test suite class containing test cases for JIRA issue SGF-195, + * concerning colocated Regions in GemFire. + *
+ * @author John Blum + * @link https://jira.springsource.org/browse/SGF-195 + * @see org.junit.Test + * @see org.junit.runner.RunWith + * @see org.springframework.test.context.ContextConfiguration + * @see org.springframework.test.context.junit4.SpringJUnit4ClassRunner + * @since 1.3.2 + */ +@ContextConfiguration("/org/springframework/data/gemfire/colocated-region.xml") +@RunWith(SpringJUnit4ClassRunner.class) +@SuppressWarnings("unused") +public class ColocatedRegionIntegrationTest { + + @Resource(name = "colocatedRegion") + private Region colocatedRegion; + + @Resource(name = "sourceRegion") + private Region sourceRegion; + + protected static void assertRegionExists(final String expectedRegionName, final Region region) { + assertNotNull(region); + assertEquals(String.format("Expected Region with name %1$s; but was %2$s!", + expectedRegionName, region.getName()), expectedRegionName, region.getName()); + } + + @Test + public void testRegionsColocated() { + assertRegionExists("Source", sourceRegion); + assertRegionExists("Colocated", colocatedRegion); + assertNotNull(colocatedRegion.getAttributes()); + assertNotNull(colocatedRegion.getAttributes().getPartitionAttributes()); + assertEquals(sourceRegion.getName(), colocatedRegion.getAttributes().getPartitionAttributes().getColocatedWith()); + } + +} diff --git a/src/test/java/org/springframework/data/gemfire/PartitionAttributesFactoryBeanTest.java b/src/test/java/org/springframework/data/gemfire/PartitionAttributesFactoryBeanTest.java new file mode 100644 index 00000000..7c71005b --- /dev/null +++ b/src/test/java/org/springframework/data/gemfire/PartitionAttributesFactoryBeanTest.java @@ -0,0 +1,58 @@ +package org.springframework.data.gemfire; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +import org.junit.Test; + +import com.gemstone.gemfire.cache.PartitionAttributes; +import com.gemstone.gemfire.cache.PartitionResolver; + +/** + * The PartitionAttributesFactoryBeanTest class is test suite of test cases testing the contract and functionality of + * the PartitionAttributesFactoryBean class. + * + * @author John Blum + * @see org.junit.Test + * @see org.springframework.data.gemfire.PartitionAttributesFactoryBean + * @since 1.3.2 + */ +@SuppressWarnings("unused") +public class PartitionAttributesFactoryBeanTest { + + protected PartitionResolver createMockPartitionResolver(final String name) { + PartitionResolver partitionResolver = mock(PartitionResolver.class); + + when(partitionResolver.getName()).thenReturn(name); + + return partitionResolver; + } + + @Test + public void testSetBasicProperties() throws Exception { + PartitionAttributesFactoryBean partitionAttributesFactoryBean = new PartitionAttributesFactoryBean(); + + partitionAttributesFactoryBean.setColocatedWith("mockColocatedRegion"); + partitionAttributesFactoryBean.setLocalMaxMemory(1024); + partitionAttributesFactoryBean.setPartitionResolver(createMockPartitionResolver("mockPartitionResolver")); + partitionAttributesFactoryBean.setRecoveryDelay(1000l); + partitionAttributesFactoryBean.setRedundantCopies(1); + partitionAttributesFactoryBean.setStartupRecoveryDelay(60000l); + partitionAttributesFactoryBean.setTotalMaxMemory(8192l); + partitionAttributesFactoryBean.setTotalNumBuckets(42); + + PartitionAttributes partitionAttributes = partitionAttributesFactoryBean.getObject(); + + assertNotNull(partitionAttributes); + assertEquals("mockColocatedRegion", partitionAttributes.getColocatedWith()); + assertEquals(1024, partitionAttributes.getLocalMaxMemory()); + assertNotNull(partitionAttributes.getPartitionResolver()); + assertEquals("mockPartitionResolver", partitionAttributes.getPartitionResolver().getName()); + assertEquals(1000l, partitionAttributes.getRecoveryDelay()); + assertEquals(1, partitionAttributes.getRedundantCopies()); + assertEquals(60000l, partitionAttributes.getStartupRecoveryDelay()); + assertEquals(8192l, partitionAttributes.getTotalMaxMemory()); + assertEquals(42, partitionAttributes.getTotalNumBuckets()); + } + +} diff --git a/src/test/resources/org/springframework/data/gemfire/colocated-region.xml b/src/test/resources/org/springframework/data/gemfire/colocated-region.xml new file mode 100644 index 00000000..b81c1f15 --- /dev/null +++ b/src/test/resources/org/springframework/data/gemfire/colocated-region.xml @@ -0,0 +1,15 @@ + +