diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-27 23:48:39 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-27 23:48:39 +0200 |
commit | f5e70695ad0124cd5cd648d186d5174c7b121266 (patch) | |
tree | 0f0f86af677653ce45435c127c545656f45e81df /kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala | |
parent | 0fe9e267c7cec7a176fc8b0a43e73e12b6606b9f (diff) | |
download | Kamon-f5e70695ad0124cd5cd648d186d5174c7b121266.tar.gz Kamon-f5e70695ad0124cd5cd648d186d5174c7b121266.tar.bz2 Kamon-f5e70695ad0124cd5cd648d186d5174c7b121266.zip |
implement HdrHistogram and Distribution snapshots
Diffstat (limited to 'kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala')
-rw-r--r-- | kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala b/kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala new file mode 100644 index 00000000..26b3456d --- /dev/null +++ b/kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala @@ -0,0 +1,46 @@ +package kamon.metric.instrument + +import kamon.LogInterceptor +import kamon.metric.Entity +import kamon.testkit.DefaultInstrumentFactory +import org.scalatest.{Matchers, WordSpec} +import uk.org.lidalia.slf4jext.Level +import uk.org.lidalia.slf4jtest.TestLoggerFactory + +class CounterSpec extends WordSpec with Matchers with LogInterceptor with DefaultInstrumentFactory { + implicit val testLogger = TestLoggerFactory.getTestLogger(classOf[LongAdderCounter]) + + "a Counter" should { + + "allow unit and bundled increments" in { + val counter = buildCounter("unit-increments") + counter.increment() + counter.increment() + counter.increment(40) + + counter.snapshot().value shouldBe(42) + } + + "warn the user and ignore attempts to decrement the counter" in { + val counter = buildCounter("attempt-to-decrement") + counter.increment(100) + counter.increment(100) + counter.increment(100) + + interceptLog(Level.WARN) { + counter.increment(-10L) + }.head.getMessage() shouldBe(s"Ignored attempt to decrement counter [attempt-to-decrement] on entity [$defaultEntity]") + + counter.snapshot().value shouldBe(300) + } + + "reset the internal state to zero after taking snapshots" in { + val counter = buildCounter("reset-after-snapshot") + counter.increment() + counter.increment(10) + + counter.snapshot().value shouldBe(11) + counter.snapshot().value shouldBe(0) + } + } +} |