diff options
Diffstat (limited to 'kamon-core/src/test/scala/kamon/metric')
-rw-r--r-- | kamon-core/src/test/scala/kamon/metric/instrument/CounterSpec.scala | 46 | ||||
-rw-r--r-- | kamon-core/src/test/scala/kamon/metric/instrument/InstrumentFactorySpec.scala | 4 |
2 files changed, 48 insertions, 2 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) + } + } +} diff --git a/kamon-core/src/test/scala/kamon/metric/instrument/InstrumentFactorySpec.scala b/kamon-core/src/test/scala/kamon/metric/instrument/InstrumentFactorySpec.scala index fc82ddcd..5bf16d4c 100644 --- a/kamon-core/src/test/scala/kamon/metric/instrument/InstrumentFactorySpec.scala +++ b/kamon-core/src/test/scala/kamon/metric/instrument/InstrumentFactorySpec.scala @@ -68,7 +68,7 @@ class InstrumentFactorySpec extends WordSpec with Matchers{ | modified-histogram { | lowest-discernible-value = 99 | highest-trackable-value = 999 - | significant-value-digits = 7 + | significant-value-digits = 4 | } | | modified-mm-counter { @@ -92,7 +92,7 @@ class InstrumentFactorySpec extends WordSpec with Matchers{ modifiedHistogram.dynamicRange.lowestDiscernibleValue shouldBe(99) modifiedHistogram.dynamicRange.highestTrackableValue shouldBe(999) - modifiedHistogram.dynamicRange.significantValueDigits shouldBe(7) + modifiedHistogram.dynamicRange.significantValueDigits shouldBe(4) val defaultMMCounter = factory.buildMinMaxCounter(customEntity, "default-mm-counter") |