@Override protected Counter newCounter(Id id) { return new DefaultCounter(clock(), id); }
@Override protected Counter newCounter(Id id) { return new DefaultCounter(clock(), id); }
@Test public void testInit() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); Assertions.assertEquals(c.count(), 0L); }
@Test public void testAddNegativeAmount() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.add(-42.0); Assertions.assertEquals(c.actualCount(), 0.0, 1e-12); }
@Test public void testAddInfinity() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.add(Double.POSITIVE_INFINITY); Assertions.assertEquals(c.actualCount(), 0.0, 1e-12); }
@Test public void testIncrementAmount() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.increment(42); Assertions.assertEquals(c.count(), 42L); }
@Test public void testAddAmount() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.add(42.0); Assertions.assertEquals(c.actualCount(), 42.0, 1e-12); }
@Test public void testAddNaN() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.add(1.0); c.add(Double.NaN); Assertions.assertEquals(c.actualCount(), 1.0, 1e-12); }
@Test public void testIncrement() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.increment(); Assertions.assertEquals(c.count(), 1L); c.increment(); c.increment(); Assertions.assertEquals(c.count(), 3L); }
@Test public void testRegisterBadTypeAccessNoThrow() { Registry r = newRegistry(5, false); Counter c = new DefaultCounter(clock, r.createId("foo")); r.counter(c.id()); r.register(c); Assertions.assertNotSame(r.get(c.id()), c); }
@Test public void testAddGauges() { CompositeRegistry r = new CompositeRegistry(clock); Id id = r.createId("id1"); DefaultCounter c1 = new DefaultCounter(clock, id); c1.increment(); Registry r1 = new DefaultRegistry(clock); r.add(r1); for (Meter meter : r1) { for (Measurement m : meter.measure()) { Assertions.assertEquals(id, m.id()); } } }
@Test public void testMeasure() { Counter c = new DefaultCounter(clock, NoopId.INSTANCE); c.increment(42); clock.setWallTime(3712345L); for (Measurement m : c.measure()) { Assertions.assertEquals(m.id(), c.id()); Assertions.assertEquals(m.timestamp(), 3712345L); Assertions.assertEquals(m.value(), 42.0, 0.1e-12); } }
@Test public void wrappedCounters() { Counter c = new DefaultCounter(clock, counterId); SwapCounter sc1 = new SwapCounter(registry, counterId, c); SwapCounter sc2 = new SwapCounter(registry, counterId, sc1); Assertions.assertFalse(sc2.hasExpired()); sc2.increment(); Assertions.assertEquals(1, c.count()); Assertions.assertEquals(1, sc1.count()); Assertions.assertEquals(1, sc2.count()); }
@Test public void testRegister() { Registry r = newRegistry(5, true); Counter c = new DefaultCounter(clock, r.createId("foo")); r.register(c); c.increment(); Assertions.assertEquals(c.count(), 1L); r.register(c); PolledMeter.update(r); Meter meter = r.get(c.id()); for (Measurement m : meter.measure()) { Assertions.assertEquals(m.value(), 2.0, 1e-12); } }