package io.pcp.parfait.jmx; import static org.junit.Assert.assertEquals; import java.util.Collections; import javax.management.openmbean.SimpleType; import javax.management.openmbean.TabularData; import io.pcp.parfait.MonitorableRegistry; import io.pcp.parfait.timing.EventTimer; import io.pcp.parfait.timing.InProgressSnapshot; import io.pcp.parfait.timing.LoggerSink; import io.pcp.parfait.timing.StepMeasurementSink; import io.pcp.parfait.timing.ThreadContext; import io.pcp.parfait.timing.ThreadMetricSuite; import io.pcp.parfait.timing.Timeable; import org.junit.Test; public class JmxInProgressMonitorTest { @Test public void testValuesConvertedToStringsForExport() { ThreadContext context = new ThreadContext(); context.put("stringvalue", "floop"); context.put("intvalue", 99); Timeable t = new Timeable() { @Override public void setEventTimer(EventTimer timer) { } }; EventTimer timer = new EventTimer("foo", new MonitorableRegistry(), ThreadMetricSuite.blank(), false, false, Collections.<StepMeasurementSink>singletonList(new LoggerSink())); timer.registerTimeable(t, "foo"); timer.getCollector().startTiming(t, "stuff"); InProgressSnapshot snapshot = InProgressSnapshot.capture(timer, context); TabularData data = JmxInProgressMonitor.TO_TABULAR_DATA.apply(snapshot); assertEquals(SimpleType.STRING, data.getTabularType().getRowType().getType("stringvalue")); assertEquals(SimpleType.STRING, data.getTabularType().getRowType().getType("intvalue")); } }