diff options
Diffstat (limited to 'kamon-core/src/test/scala/kamon/metric/TimerSpec.scala')
-rw-r--r-- | kamon-core/src/test/scala/kamon/metric/TimerSpec.scala | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/kamon-core/src/test/scala/kamon/metric/TimerSpec.scala b/kamon-core/src/test/scala/kamon/metric/TimerSpec.scala deleted file mode 100644 index 3fc1e169..00000000 --- a/kamon-core/src/test/scala/kamon/metric/TimerSpec.scala +++ /dev/null @@ -1,72 +0,0 @@ -package kamon.metric - -import kamon.Kamon -import org.scalatest.{Matchers, WordSpec} - - -class TimerSpec extends WordSpec with Matchers { - import TimerTestHelper._ - - "a Timer" should { - "record the duration between calls to .start() and .stop() in the StartedTimer" in { - val timer = Kamon.timer("timer-spec") - timer.start().stop() - timer.start().stop() - timer.start().stop() - - timer.distribution().count shouldBe(3) - } - - "ensure that a started timer can only be stopped once" in { - val timer = Kamon.timer("timer-spec") - val startedTimer = timer.start() - startedTimer.stop() - startedTimer.stop() - startedTimer.stop() - - timer.distribution().count shouldBe(1) - } - - - "allow to record values and produce distributions as Histograms do" in { - val timer = Kamon.timer("test-timer") - timer.record(100) - timer.record(150, 998) - timer.record(200) - - val distribution = timer.distribution() - distribution.min shouldBe(100) - distribution.max shouldBe(200) - distribution.count shouldBe(1000) - distribution.buckets.length shouldBe 3 - distribution.buckets.map(b => (b.value, b.frequency)) should contain.allOf( - (100 -> 1), - (150 -> 998), - (200 -> 1) - ) - - val emptyDistribution = timer.distribution() - emptyDistribution.min shouldBe(0) - emptyDistribution.max shouldBe(0) - emptyDistribution.count shouldBe(0) - emptyDistribution.buckets.length shouldBe 0 - } - } -} - -object TimerTestHelper { - - implicit class HistogramMetricSyntax(histogram: Histogram) { - def distribution(resetState: Boolean = true): Distribution = histogram match { - case h: AtomicHdrHistogram => h.snapshot(resetState).distribution - case h: HdrHistogram => h.snapshot(resetState).distribution - } - } - - implicit class TimerMetricSyntax(metric: TimerMetric) { - def distribution(resetState: Boolean = true): Distribution = - metric.refine(Map.empty[String, String]) match { - case t: TimerImpl => t.histogram.distribution(resetState) - } - } -} |