package io.pcp.parfait;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class MonitoredCounterTest {
@Test
public void monitoredCounterHasCorrectSemantics() {
assertEquals(ValueSemantics.MONOTONICALLY_INCREASING, newCounter().getSemantics());
}
@Test
public void initialValueIsZero() {
assertEquals(0L, newCounter().get().longValue());
}
@Test
public void incrementIncreasesValueByOne() {
MonitoredCounter counter = newCounter();
counter.inc();
assertEquals(1L, counter.get().longValue());
}
@Test
public void incrementIncreasesValueByProvidedAmount() {
MonitoredCounter counter = newCounter();
counter.inc(77L);
assertEquals(77L, counter.get().longValue());
}
@Test
public void canIncrementByNegativeNumber() {
MonitoredCounter counter = newCounter();
counter.inc(-1L);
assertEquals(-1L, counter.get().longValue());
}
@Test
public void canIncrementByZero() {
MonitoredCounter counter = newCounter();
counter.inc(0L);
assertEquals(0L, counter.get().longValue());
}
@Test
public void canSetToNewValue() {
MonitoredCounter counter = newCounter();
counter.set(1337L);
assertEquals(1337L, counter.get().longValue());
}
private MonitoredCounter newCounter() {
return new MonitoredCounter("A", "aaa", new MonitorableRegistry());
}
}