blob: dbe92dc6e50c73d870a1226c12fe47edeeb8634a [file] [log] [blame]
/*=========================================================================
* Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved.
* This product is protected by U.S. and international copyright
* and intellectual property laws. Pivotal products are covered by
* one or more patents listed at http://www.pivotal.io/patents.
*=========================================================================
*/
package com.gemstone.gemfire.internal.cache;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Properties;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import static org.junit.Assert.*;
import com.gemstone.gemfire.cache.*;
import com.gemstone.gemfire.distributed.DistributedSystem;
import com.gemstone.gemfire.distributed.internal.DistributionConfig;
import com.gemstone.gemfire.internal.AvailablePort;
import com.gemstone.gemfire.internal.cache.xmlcache.*;
import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
/**
* This test is for testing Disk attributes set programmatically
* The generated cacheXml is used to create a cache and teh region
* properties retested.
*
*/
@Category(IntegrationTest.class)
public class DiskRegCachexmlGeneratorJUnitTest extends DiskRegionTestingBase
{
PrintWriter pw;
DiskRegionProperties diskProps = new DiskRegionProperties();
DiskRegionProperties diskProps1 = new DiskRegionProperties();
DiskRegionProperties diskProps2 = new DiskRegionProperties();
DiskRegionProperties diskProps3 = new DiskRegionProperties();
DiskRegionProperties diskProps4 = new DiskRegionProperties();
DiskRegionProperties diskProps5 = new DiskRegionProperties();
DiskRegionProperties diskProps6 = new DiskRegionProperties();
DiskRegionProperties diskProps7 = new DiskRegionProperties();
DiskRegionProperties diskProps8 = new DiskRegionProperties();
DiskRegionProperties diskProps9 = new DiskRegionProperties();
DiskRegionProperties diskProps10 = new DiskRegionProperties();
DiskRegionProperties diskProps11 = new DiskRegionProperties();
DiskRegionProperties diskProps12 = new DiskRegionProperties();
Region region1;
Region region2;
Region region3;
Region region4;
Region region5;
Region region6;
Region region7;
Region region8;
Region region9;
Region region10;
Region region11;
Region region12;
@Before
public void setUp() throws Exception
{
super.setUp();
diskDirSize = new int[4];
diskDirSize[0] = Integer.MAX_VALUE;
diskDirSize[1] = Integer.MAX_VALUE;
diskDirSize[2] = 1073741824;
diskDirSize[3] = 2073741824;
diskProps1.setDiskDirsAndSizes(dirs, diskDirSize);
diskProps2.setDiskDirs(dirs);
diskProps3.setDiskDirs(dirs);
diskProps4.setDiskDirs(dirs);
diskProps5.setDiskDirs(dirs);
diskProps6.setDiskDirs(dirs);
diskProps7.setDiskDirs(dirs);
diskProps8.setDiskDirs(dirs);
diskProps9.setDiskDirs(dirs);
diskProps10.setDiskDirs(dirs);
diskProps11.setDiskDirs(dirs);
diskProps12.setDiskDirs(dirs);
}
@After
public void tearDown() throws Exception
{
super.tearDown();
}
public void createCacheXML()
{
// create the region1 which is SyncPersistOnly and set DiskWriteAttibutes
diskProps1.setRolling(true);
diskProps1.setMaxOplogSize(1073741824L);
diskProps1.setRegionName("region1");
region1 = DiskRegionHelperFactory.getSyncPersistOnlyRegion(cache,
diskProps1, Scope.LOCAL);
// create the region2 which is SyncPersistOnly and set DiskWriteAttibutes
diskProps2.setRolling(false);
diskProps2.setRegionName("region2");
region2 = DiskRegionHelperFactory.getSyncPersistOnlyRegion(cache,
diskProps2, Scope.LOCAL);
// create the region3 which AsyncPersistOnly, No buffer and Rolling oplog
diskProps3.setRolling(true);
diskProps3.setMaxOplogSize(1073741824L);
diskProps3.setRegionName("region3");
region3 = DiskRegionHelperFactory.getAsyncPersistOnlyRegion(cache,
diskProps3);
// create the region4 which is AsynchPersistonly, No buffer and fixed oplog
diskProps4.setRolling(false);
diskProps4.setRegionName("region4");
region4 = DiskRegionHelperFactory.getAsyncPersistOnlyRegion(cache,
diskProps4);
// create the region5 which is SynchOverflowOnly, Rolling oplog
diskProps5.setRolling(true);
diskProps5.setMaxOplogSize(1073741824L);
diskProps5.setRegionName("region5");
region5 = DiskRegionHelperFactory.getSyncOverFlowOnlyRegion(cache,
diskProps5);
// create the region6 which is SyncOverflowOnly, Fixed oplog
diskProps6.setRolling(false);
diskProps6.setRegionName("region6");
region6 = DiskRegionHelperFactory.getSyncOverFlowOnlyRegion(cache,
diskProps6);
// create the region7 which is AsyncOverflow, with Buffer and rolling oplog
diskProps7.setRolling(true);
diskProps7.setMaxOplogSize(1073741824L);
diskProps7.setBytesThreshold(10000l);
diskProps7.setTimeInterval(15l);
diskProps7.setRegionName("region7");
region7 = DiskRegionHelperFactory.getAsyncOverFlowOnlyRegion(cache,
diskProps7);
// create the region8 which is AsyncOverflow ,Time base buffer-zero byte
// buffer
// and Fixed oplog
diskProps8.setRolling(false);
diskProps8.setTimeInterval(15l);
diskProps8.setBytesThreshold(0l);
diskProps8.setRegionName("region8");
region8 = DiskRegionHelperFactory.getAsyncOverFlowOnlyRegion(cache,
diskProps8);
// create the region9 which is SyncPersistOverflow, Rolling oplog
diskProps9.setRolling(true);
diskProps9.setMaxOplogSize(1073741824L);
diskProps9.setRegionName("region9");
region9 = DiskRegionHelperFactory.getSyncOverFlowAndPersistRegion(cache,
diskProps9);
// create the region10 which is Sync PersistOverflow, fixed oplog
diskProps10.setRolling(false);
diskProps10.setRegionName("region10");
region10 = DiskRegionHelperFactory.getSyncOverFlowAndPersistRegion(cache,
diskProps10);
// create the region11 which is Async Overflow Persist ,with buffer and
// rollong
// oplog
diskProps11.setRolling(true);
diskProps11.setMaxOplogSize(1073741824L);
diskProps11.setBytesThreshold(10000l);
diskProps11.setTimeInterval(15l);
diskProps11.setRegionName("region11");
region11 = DiskRegionHelperFactory.getAsyncOverFlowAndPersistRegion(cache,
diskProps11);
// create the region12 which is Async Persist Overflow with time based
// buffer
// and Fixed oplog
diskProps12.setRolling(false);
diskProps12.setBytesThreshold(0l);
diskProps12.setTimeInterval(15l);
diskProps12.setRegionName("region12");
region12 = DiskRegionHelperFactory.getAsyncOverFlowAndPersistRegion(cache,
diskProps12);
//cacheXmlGenerator: generates cacheXml file
try {
FileWriter fw = new FileWriter(new File("DiskRegCachexmlGeneratorJUnitTest.xml"));
PrintWriter pw = new PrintWriter(fw);
CacheXmlGenerator.generate(cache, pw);
}
catch (Exception ex) {
logWriter.error("Exception occured",ex);
fail("FAILED While cache xml generation");
}
}
@Test
public void testVerifyCacheXml() throws Exception
{
createCacheXML();
ds.disconnect();
// Connect to the GemFire distributed system
Properties props = new Properties();
props.setProperty(DistributionConfig.NAME_NAME, "DiskRegCachexmlGeneratorJUnitTest");
props.setProperty("mcast-port", "0");
String path = "DiskRegCachexmlGeneratorJUnitTest.xml";
props.setProperty("cache-xml-file", path);
ds = DistributedSystem.connect(props);
// Create the cache which causes the cache-xml-file to be parsed
cache = CacheFactory.create(ds);
// Get the region1
region1 = cache.getRegion("region1");
verify((LocalRegion)region1, diskProps1);
// Get the region2
Region region2 = cache.getRegion("region2");
verify((LocalRegion)region2, diskProps2);
// Get the region3
Region region3 = cache.getRegion("region3");
verify((LocalRegion)region3, diskProps3);
// Get the region4
Region region4 = cache.getRegion("region4");
verify((LocalRegion)region4, diskProps4);
// Get the region5
Region region5 = cache.getRegion("region5");
verify((LocalRegion)region5, diskProps5);
// Get the region6
Region region6 = cache.getRegion("region6");
verify((LocalRegion)region6, diskProps6);
// Get the region7
Region region7 = cache.getRegion("region7");
verify((LocalRegion)region7, diskProps7);
// Get the region8
Region region8 = cache.getRegion("region8");
verify((LocalRegion)region8, diskProps8);
// Get the region9
Region region9 = cache.getRegion("region9");
verify((LocalRegion)region9, diskProps9);
// Get the region10
Region region10 = cache.getRegion("region10");
verify((LocalRegion)region10, diskProps10);
// Get the region11
Region region11 = cache.getRegion("region11");
verify((LocalRegion)region11, diskProps11);
// Get the region12
Region region12 = cache.getRegion("region12");
verify((LocalRegion)region12, diskProps12);
}
}// end of DiskRegCachexmlGeneratorJUnitTest