package org.infinispan.counter;
import org.infinispan.counter.api.CounterConfiguration;
import org.infinispan.counter.api.CounterManager;
import org.infinispan.counter.api.CounterType;
import org.infinispan.counter.util.WeakTestCounter;
import org.testng.annotations.Test;
/**
* @author Pedro Ruivo
* @since 9.0
*/
@Test(groups = "functional", testName = "counter.WeakCounterTest")
public class WeakCounterTest extends AbstractCounterTest<WeakTestCounter> {
private static final int CLUSTER_SIZE = 4;
@Override
protected void assertMaxValueAfterMaxValue(WeakTestCounter counter, long delta) {
counter.add(delta);
eventuallyEquals(Long.MAX_VALUE, counter::getValue);
}
@Override
protected void addAndAssertResult(WeakTestCounter counter, long delta, long expected) {
counter.add(delta);
eventuallyEquals(expected, counter::getValue);
}
@Override
protected void assertMinValueAfterMinValue(WeakTestCounter counter, long delta) {
counter.add(delta);
eventuallyEquals(Long.MIN_VALUE, counter::getValue);
}
@Override
protected int clusterSize() {
return CLUSTER_SIZE;
}
@Override
protected WeakTestCounter createCounter(CounterManager counterManager, String counterName, long initialValue) {
counterManager.defineCounter(counterName,
CounterConfiguration.builder(CounterType.WEAK).initialValue(initialValue).build());
return new WeakTestCounter(counterManager.getWeakCounter(counterName));
}
}