@Test public void getSortedProbes_whenNoChange() { SortedProbesInstances instances1 = metricsRegistry.getSortedProbeInstances(); SortedProbesInstances instances2 = metricsRegistry.getSortedProbeInstances(); assertSame(instances1, instances2); }
@Test public void getSortedProbes_whenProbeAdded() { SortedProbesInstances instances1 = metricsRegistry.getSortedProbeInstances(); registerLongMetric("foo", 10); SortedProbesInstances instances2 = metricsRegistry.getSortedProbeInstances(); assertEquals(instances1.modCount + 1, instances2.modCount); }
@Before public void setup() { metricsRegistry = new MetricsRegistryImpl(Logger.getLogger(MetricsRegistryImpl.class), ProbeLevel.INFO); for (String name : metricsRegistry.getNames()) { ProbeInstance probeInstance = metricsRegistry.getProbeInstance(name); if (probeInstance != null && probeInstance.source != null) { metricsRegistry.deregister(probeInstance.source); } } }
ProbeInstance getProbeInstance() { ProbeInstance probeInstance = this.probeInstance; if (probeInstance == null) { probeInstance = metricsRegistry.getProbeInstance(name); this.probeInstance = probeInstance; } return probeInstance; }
private void registerDoubleMetric(String name, final int value) { metricsRegistry.register( this, name, ProbeLevel.INFO, new DoubleProbeFunction<RenderTest>() { @Override public double get(RenderTest source) throws Exception { return value; } }); }
@Test public void whenDoubleProbeFunctions() { ProbeRenderer renderer = mock(ProbeRenderer.class); registerDoubleMetric("foo", 10); registerDoubleMetric("bar", 20); metricsRegistry.render(renderer); verify(renderer).start(); verify(renderer).renderDouble("foo", 10); verify(renderer).renderDouble("bar", 20); verify(renderer).finish(); verifyNoMoreInteractions(renderer); }
@Test public void whenException() { ProbeRenderer renderer = mock(ProbeRenderer.class); final ExpectedRuntimeException ex = new ExpectedRuntimeException(); metricsRegistry.register( this, "foo", ProbeLevel.MANDATORY, new LongProbeFunction<RenderTest>() { @Override public long get(RenderTest source) throws Exception { throw ex; } }); metricsRegistry.render(renderer); verify(renderer).start(); verify(renderer).renderException("foo", ex); verify(renderer).finish(); verifyNoMoreInteractions(renderer); }
@Test(expected = NullPointerException.class) public void whenCalledWithNullRenderer() { metricsRegistry.render(null); }
void register(MetricsRegistryImpl metricsRegistry, Object source, String namePrefix) { String name = getName(namePrefix); metricsRegistry.registerInternal(source, name, probe.level(), this); }