blob: 9692ab4f177bc7843b724e454d9d88fc396d7a4b [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 org.junit.experimental.categories.Category;
import com.gemstone.gemfire.cache.DiskWriteAttributes;
import com.gemstone.gemfire.cache.DiskWriteAttributesFactory;
import com.gemstone.gemfire.internal.Assert;
import com.gemstone.gemfire.test.junit.categories.UnitTest;
import junit.framework.TestCase;
/**
* Tests if DiskWriteAttributeFactory returns the correct DWA object with the
* desired values
*
* @author Mitul Bid
*
*/
@Category(UnitTest.class)
public class DiskWriteAttributesJUnitTest extends TestCase
{
public DiskWriteAttributesJUnitTest(String arg0) {
super(arg0);
}
protected void setUp() throws Exception
{
super.setUp();
}
protected void tearDown() throws Exception
{
super.tearDown();
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultInstance()'
*/
public void testGetDefaultInstance()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(!dwa.isSynchronous());
Assert.assertTrue(dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultSync()'
*/
public void testGetDefaultSync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
dwaf.setSynchronous(true);
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(dwa.isSynchronous());
Assert.assertTrue(dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultAsync()'
*/
public void testGetDefaultAsync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(!dwa.isSynchronous());
Assert.assertTrue(dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultRollingSync()'
*/
public void testGetDefaultRollingSync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
dwaf.setSynchronous(true);
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(dwa.isSynchronous());
Assert.assertTrue(dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultRollingAsync()'
*/
public void testGetDefaultRollingAsync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(!dwa.isSynchronous());
Assert.assertTrue(dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultNonRollingSync()'
*/
public void testGetDefaultNonRollingSync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
dwaf.setRollOplogs(false);
dwaf.setSynchronous(true);
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(dwa.isSynchronous());
Assert.assertTrue(!dwa.isRollOplogs());
}
/*
* Test method for
* 'com.gemstone.gemfire.cache.DiskWriteAttributes.getDefaultNonRollingAsync()'
*/
public void testGetDefaultNonRollingAsync()
{
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
dwaf.setRollOplogs(false);
DiskWriteAttributes dwa = dwaf.create();
Assert.assertTrue(!dwa.isSynchronous());
Assert.assertTrue(!dwa.isRollOplogs());
}
/**
* Tests the behaviour of DiskWriteAttributesFactory & DiskWritesAttrbutes with
* various combinations of time interval & buffer size.
* @author Asif
*/
public void testDiskWriteAttributesCreation() {
DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory();
dwaf.setSynchronous(true);
DiskWriteAttributes dwa = dwaf.create();
assertEquals(dwa.getBytesThreshold(),0);
assertEquals(dwa.getTimeInterval(),0);
dwaf.setSynchronous(false);
dwa = dwaf.create();
assertEquals(dwa.getBytesThreshold(),0);
assertEquals(dwa.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
dwaf.setBytesThreshold(0);
dwa = dwaf.create();
assertEquals(dwa.getBytesThreshold(),0);
assertEquals(dwa.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
dwaf.setBytesThreshold(1);
dwa = dwaf.create();
assertEquals(dwa.getBytesThreshold(),1);
assertEquals(dwa.getTimeInterval(),0);
dwaf.setBytesThreshold(0);
dwaf.setTimeInterval(0);
dwa = dwaf.create();
assertEquals(dwa.getBytesThreshold(),0);
assertEquals(dwa.getTimeInterval(),0);
DiskWriteAttributesFactory dwaf1 = new DiskWriteAttributesFactory();
DiskWriteAttributes dwa1 = dwaf1.create();
assertEquals(dwa1.getBytesThreshold(),0);
assertEquals(dwa1.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
DiskWriteAttributesFactory dwaf2 = new DiskWriteAttributesFactory(dwa1);
DiskWriteAttributes dwa2 = dwaf2.create();
assertEquals(dwa2.getBytesThreshold(),0);
assertEquals(dwa2.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
dwaf1 = new DiskWriteAttributesFactory();
dwaf1.setBytesThreshold(100);
dwaf2 = new DiskWriteAttributesFactory(dwaf1.create());
dwa2 = dwaf2.create();
assertEquals(dwa2.getBytesThreshold(),100);
assertEquals(dwa2.getTimeInterval(),0);
dwaf1 = new DiskWriteAttributesFactory();
dwaf1.setBytesThreshold(0);
dwaf1.setTimeInterval(0);
dwaf2 = new DiskWriteAttributesFactory(dwaf1.create());
dwa2 = dwaf2.create();
assertEquals(dwa2.getBytesThreshold(),0);
assertEquals(dwa2.getTimeInterval(),0);
dwaf1 = new DiskWriteAttributesFactory();
dwa1 = dwaf1.create();
dwaf2 = new DiskWriteAttributesFactory(dwa1);
dwa2 = dwaf2.create();
assertEquals(dwa2.getBytesThreshold(),0);
assertEquals(dwa2.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
assertEquals(dwa1.getBytesThreshold(),0);
assertEquals(dwa1.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
//Important :Notice the behaviour difference in the time nterval setting
dwaf1.setBytesThreshold(1);
dwaf2.setBytesThreshold(1);
dwa1 = dwaf1.create();
dwa2 = dwaf2.create();
assertEquals(dwa2.getBytesThreshold(),1);
assertEquals(dwa2.getTimeInterval(),DiskWriteAttributesImpl.DEFAULT_TIME_INTERVAL);
assertEquals(dwa1.getBytesThreshold(),1);
assertEquals(dwa1.getTimeInterval(),0);
}
}