package io.dropwizard.metrics;
import org.junit.Test;
import io.dropwizard.metrics.Counter;
import io.dropwizard.metrics.Gauge;
import io.dropwizard.metrics.Histogram;
import io.dropwizard.metrics.Meter;
import io.dropwizard.metrics.MetricName;
import io.dropwizard.metrics.MetricRegistryListener;
import io.dropwizard.metrics.Timer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyZeroInteractions;
public class MetricRegistryListenerTest {
private static final MetricName BLAH = MetricName.build("blah");
private final Gauge gauge = mock(Gauge.class);
private final Counter counter = mock(Counter.class);
private final Histogram histogram = mock(Histogram.class);
private final Meter meter = mock(Meter.class);
private final Timer timer = mock(Timer.class);
private final MetricRegistryListener listener = new MetricRegistryListener.Base() {
};
@Test
public void noOpsOnGaugeAdded() throws Exception {
listener.onGaugeAdded(BLAH, gauge);
verifyZeroInteractions(gauge);
}
@Test
public void noOpsOnCounterAdded() throws Exception {
listener.onCounterAdded(BLAH, counter);
verifyZeroInteractions(counter);
}
@Test
public void noOpsOnHistogramAdded() throws Exception {
listener.onHistogramAdded(BLAH, histogram);
verifyZeroInteractions(histogram);
}
@Test
public void noOpsOnMeterAdded() throws Exception {
listener.onMeterAdded(BLAH, meter);
verifyZeroInteractions(meter);
}
@Test
public void noOpsOnTimerAdded() throws Exception {
listener.onTimerAdded(BLAH, timer);
verifyZeroInteractions(timer);
}
@Test
public void doesNotExplodeWhenMetricsAreRemoved() throws Exception {
listener.onGaugeRemoved(BLAH);
listener.onCounterRemoved(BLAH);
listener.onHistogramRemoved(BLAH);
listener.onMeterRemoved(BLAH);
listener.onTimerRemoved(BLAH);
}
}