@Test
public void reportsMeterValues() throws Exception {

    final Meter meter = mock(Meter.class);
    when(meter.getCount()).thenReturn(1L);
    when(meter.getMeanRate()).thenReturn(2.0);
    when(meter.getOneMinuteRate()).thenReturn(3.0);
    when(meter.getFiveMinuteRate()).thenReturn(4.0);
    when(meter.getFifteenMinuteRate()).thenReturn(5.0);
    when(logger.isInfoEnabled(marker)).thenReturn(true);
    infoReporter.report(this.<Gauge>map(),
            this.<Counter>map(),
            this.<Histogram>map(),
            map("test.meter", meter),
            this.<Timer>map());
    verify(logger).info(marker,
            "type={}, name={}, count={}, mean_rate={}, m1={}, m5={}, m15={}, rate_unit={}",
            "METER",
            "prefix.test.meter",
            1L,
            2.0,
            3.0,
            4.0,
            5.0,
            "events/second");
}