package com.etsy.statsd.profiler.reporter; import com.etsy.statsd.profiler.Arguments; import com.etsy.statsd.profiler.util.MapUtil; import com.etsy.statsd.profiler.util.MockArguments; import java.util.HashMap; import java.util.Map; /** * Mock reporter for testing * * @author Andrew Johnson */ public class MockReporter extends Reporter<String> { private Map<String, Number> output; public MockReporter() { super(MockArguments.BASIC); output = new HashMap<>(); } @Override public void recordGaugeValue(String key, long value) { MapUtil.setOrIncrementMap(output, key, value); } @Override public void recordGaugeValues(Map<String, ? extends Number> gauges) { for (Map.Entry<String, ? extends Number> gauge : gauges.entrySet()) { if (gauge.getValue() instanceof Long) { recordGaugeValue(gauge.getKey(), gauge.getValue().longValue()); } else if (gauge.getValue() instanceof Double) { recordGaugeValue(gauge.getKey(), gauge.getValue().doubleValue()); } else { throw new IllegalArgumentException("Unexpected Number type: " + gauge.getValue().getClass().getSimpleName()); } } } @Override public void recordGaugeValue(String key, double value) { MapUtil.setOrIncrementMap(output, key, value); } @Override protected String createClient(String server, int port, String prefix) { return ""; } @Override protected void handleArguments(Arguments arguments) { } public Map<String, Number> getOutput() { return output; } }