package io.pcp.parfait.timing;
import static tec.uom.se.unit.Units.HERTZ;
import static tec.uom.se.unit.MetricPrefix.MEGA;
import javax.measure.Unit;
import junit.framework.TestCase;
public class LoggerSinkTest extends TestCase {
public void testShouldProduceExpectedMetricString() {
MetricMeasurement measurement = getUnitMeasurement(HERTZ, 1);
String result = new LoggerSink().buildSingleMetricResult(measurement);
assertEquals("dummy: own 1.0 Hz, total 1.0 Hz", result);
}
public void testShouldNormalizeMetricStringToCorrectUnit() {
MetricMeasurement measurement = getUnitMeasurement(HERTZ, 1000000001);
LoggerSink sink = new LoggerSink();
sink.normalizeUnits(HERTZ, MEGA(HERTZ));
String result = sink.buildSingleMetricResult(measurement);
assertEquals("dummy: own 1000.000001 MHz, total 1000.000001 MHz", result);
}
private MetricMeasurement getUnitMeasurement(Unit<?> unit, int amount) {
DummyThreadMetric metric = new DummyThreadMetric(unit);
MetricMeasurement measurement = new MetricMeasurement(metric, Thread.currentThread());
measurement.startTimer();
metric.incrementValue(amount);
measurement.stopTimer();
return measurement;
}
}