package io.pcp.parfait;
import static org.junit.Assert.assertEquals;
import static tec.uom.se.AbstractUnit.ONE;
import java.util.concurrent.atomic.AtomicLong;
import org.junit.Test;
public class MonitoredLongValueTest {
@Test
public void newMonitoredLongHasCorrectSemantics() {
assertEquals(ValueSemantics.FREE_RUNNING, newValue().getSemantics());
}
@Test
public void newMonitoredLongHasSuppliedValues() {
assertEquals("AAA", newValue().getName());
assertEquals("BBB", newValue().getDescription());
assertEquals(23L, newValue().get().longValue());
assertEquals(ONE, newValue().getUnit());
assertEquals(AtomicLong.class, newValue().getType());
}
@Test
public void incrementIncreasesValueByOne() {
MonitoredLongValue value = newValue();
value.inc();
assertEquals(24L, value.get().longValue());
}
@Test
public void decrementDecreasesValueByOne() {
MonitoredLongValue value = newValue();
value.dec();
assertEquals(22, value.get().longValue());
}
@Test
public void setReplacesValue() {
MonitoredLongValue value = newValue();
value.set(new AtomicLong(17));
assertEquals(17L, value.get().longValue());
}
private MonitoredLongValue newValue() {
return new MonitoredLongValue("AAA", "BBB", new MonitorableRegistry(), 23L);
}
}