package io.dropwizard.metrics; import org.junit.Test; import io.dropwizard.metrics.Clock; import java.lang.management.ManagementFactory; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.offset; public class ClockTest { @Test public void cpuTimeClock() throws Exception { final Clock.CpuTimeClock clock = new Clock.CpuTimeClock(); assertThat((double) clock.getTime()) .isEqualTo(System.currentTimeMillis(), offset(100.0)); assertThat((double) clock.getTick()) .isEqualTo(ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime(), offset(1000000.0)); } @Test public void userTimeClock() throws Exception { final Clock.UserTimeClock clock = new Clock.UserTimeClock(); assertThat((double) clock.getTime()) .isEqualTo(System.currentTimeMillis(), offset(100.0)); assertThat((double) clock.getTick()) .isEqualTo(System.nanoTime(), offset(100000.0)); } @Test public void defaultsToUserTime() throws Exception { assertThat(Clock.defaultClock()) .isInstanceOf(Clock.UserTimeClock.class); } }