blob: 1114d5502089c958df29ea36b72cc4e4451b5224 [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.management.bean.stats;
import org.junit.experimental.categories.Category;
import com.gemstone.gemfire.Statistics;
import com.gemstone.gemfire.management.internal.beans.stats.MBeanStatsMonitor;
import com.gemstone.gemfire.management.internal.beans.stats.StatType;
import com.gemstone.gemfire.management.internal.beans.stats.StatsRate;
import com.gemstone.gemfire.test.junit.categories.UnitTest;
import junit.framework.TestCase;
/**
*
* @author rishim
*
*/
@Category(UnitTest.class)
public class StatsRateJUnitTest extends TestCase {
private Long SINGLE_STATS_LONG_COUNTER = null;
private Integer SINGLE_STATS_INT_COUNTER = null;
private Long MULTI_STATS_LONG_COUNTER_1 = null;
private Long MULTI_STATS_LONG_COUNTER_2 = null;
private Integer MULTI_STATS_INT_COUNTER_1 = null;
private Integer MULTI_STATS_INT_COUNTER_2 = null;
private TestMBeanStatsMonitor statsMonitor = new TestMBeanStatsMonitor("TestStatsMonitor");
public StatsRateJUnitTest(String name) {
super(name);
}
public void setUp() throws Exception {
SINGLE_STATS_LONG_COUNTER = 0L;
SINGLE_STATS_INT_COUNTER = 0;
MULTI_STATS_LONG_COUNTER_1 = 0L;
MULTI_STATS_LONG_COUNTER_2 = 0L;
MULTI_STATS_INT_COUNTER_1 = 0;
MULTI_STATS_INT_COUNTER_2 = 0;
}
public void testSingleStatLongRate() throws Exception {
StatsRate singleStatsRate = new StatsRate("SINGLE_STATS_LONG_COUNTER", StatType.LONG_TYPE, statsMonitor);
SINGLE_STATS_LONG_COUNTER = 5000L;
float actualRate = singleStatsRate.getRate();
SINGLE_STATS_LONG_COUNTER = 10000L;
actualRate = singleStatsRate.getRate();
float expectedRate = 5000;
assertEquals(expectedRate, actualRate);
}
public void testSingleStatIntRate() throws Exception {
StatsRate singleStatsRate = new StatsRate("SINGLE_STATS_INT_COUNTER", StatType.INT_TYPE, statsMonitor);
SINGLE_STATS_INT_COUNTER = 5000;
float actualRate = singleStatsRate.getRate();
SINGLE_STATS_INT_COUNTER = 10000;
long poll2 = System.currentTimeMillis();
actualRate = singleStatsRate.getRate();
float expectedRate = 5000;
assertEquals(expectedRate, actualRate);
}
public void testMultiStatLongRate() throws Exception {
String[] counters = new String[] { "MULTI_STATS_LONG_COUNTER_1", "MULTI_STATS_LONG_COUNTER_2" };
StatsRate multiStatsRate = new StatsRate(counters, StatType.LONG_TYPE, statsMonitor);
MULTI_STATS_LONG_COUNTER_1 = 5000L;
MULTI_STATS_LONG_COUNTER_2 = 4000L;
float actualRate = multiStatsRate.getRate();
MULTI_STATS_LONG_COUNTER_1 = 10000L;
MULTI_STATS_LONG_COUNTER_2 = 8000L;
actualRate = multiStatsRate.getRate();
float expectedRate = 9000;
assertEquals(expectedRate, actualRate);
}
public void testMultiStatIntRate() throws Exception {
String[] counters = new String[] { "MULTI_STATS_INT_COUNTER_1", "MULTI_STATS_INT_COUNTER_2" };
StatsRate multiStatsRate = new StatsRate(counters, StatType.INT_TYPE, statsMonitor);
MULTI_STATS_INT_COUNTER_1 = 5000;
MULTI_STATS_INT_COUNTER_2 = 4000;
float actualRate = multiStatsRate.getRate();
MULTI_STATS_INT_COUNTER_1 = 10000;
MULTI_STATS_INT_COUNTER_2 = 8000;
actualRate = multiStatsRate.getRate();
float expectedRate = 9000;
assertEquals(expectedRate, actualRate);
}
private class TestMBeanStatsMonitor extends MBeanStatsMonitor{
public TestMBeanStatsMonitor(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void addStatisticsToMonitor(Statistics stats) {
// TODO Auto-generated method stub
}
@Override
public Number getStatistic(String statName) {
if (statName.equals("SINGLE_STATS_LONG_COUNTER")) {
return SINGLE_STATS_LONG_COUNTER;
}
if (statName.equals("SINGLE_STATS_INT_COUNTER")) {
return SINGLE_STATS_INT_COUNTER;
}
if (statName.equals("MULTI_STATS_LONG_COUNTER_1")) {
return MULTI_STATS_LONG_COUNTER_1;
}
if (statName.equals("MULTI_STATS_LONG_COUNTER_2")) {
return MULTI_STATS_LONG_COUNTER_2;
}
if (statName.equals("MULTI_STATS_INT_COUNTER_1")) {
return MULTI_STATS_INT_COUNTER_1;
}
if (statName.equals("MULTI_STATS_INT_COUNTER_2")) {
return MULTI_STATS_INT_COUNTER_2;
}
return null;
}
@Override
public void removeStatisticsFromMonitor(Statistics stats) {
// TODO Auto-generated method stub
}
@Override
public void stopListener() {
// TODO Auto-generated method stub
}
}
}