From cd54e4ed73734dbabebbf22e4fa288c9b047992e Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Thu, 24 Aug 2017 11:23:21 +0200 Subject: introduce the SpanCustomizer API --- .../scala/kamon/trace/SpanCustomizerSpec.scala | 31 ++++++++++++++++++++++ .../src/test/scala/kamon/trace/TracerSpec.scala | 7 ++--- 2 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 kamon-core-tests/src/test/scala/kamon/trace/SpanCustomizerSpec.scala (limited to 'kamon-core-tests/src/test/scala/kamon/trace') diff --git a/kamon-core-tests/src/test/scala/kamon/trace/SpanCustomizerSpec.scala b/kamon-core-tests/src/test/scala/kamon/trace/SpanCustomizerSpec.scala new file mode 100644 index 00000000..39bd7cd7 --- /dev/null +++ b/kamon-core-tests/src/test/scala/kamon/trace/SpanCustomizerSpec.scala @@ -0,0 +1,31 @@ +package kamon.trace + +import kamon.Kamon +import kamon.context.Context +import kamon.testkit.SpanInspection +import org.scalatest.{Matchers, WordSpec} + +class SpanCustomizerSpec extends WordSpec with Matchers with SpanInspection { + + "a SpanCustomizer" should { + "default to a Noop implementation when none is in the context" in { + val noopCustomizer = Context.Empty.get(SpanCustomizer.ContextKey) + val spanBuilder = noopCustomizer.customize(Kamon.buildSpan("noop")) + val span = inspect(spanBuilder.start()) + + span.operationName() shouldBe "noop" + span.metricTags() shouldBe empty + span.spanTags() shouldBe empty + } + + "have a simple builder for customizing the operation name" in { + val operationNameCustomizer = SpanCustomizer.forOperationName("myCustomOperationName") + val spanBuilder = operationNameCustomizer.customize(Kamon.buildSpan("noop")) + val span = inspect(spanBuilder.start()) + + span.operationName() shouldBe "myCustomOperationName" + span.metricTags() shouldBe empty + span.spanTags() shouldBe empty + } + } +} diff --git a/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala b/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala index b398ee98..3ad8a171 100644 --- a/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala +++ b/kamon-core-tests/src/test/scala/kamon/trace/TracerSpec.scala @@ -3,11 +3,11 @@ package kamon.trace import com.typesafe.config.ConfigFactory import kamon.Kamon import kamon.context.Context -import kamon.testkit.{SpanBuilding, SpanInspector} +import kamon.testkit.{SpanBuilding, SpanInspection} import kamon.trace.Span.TagValue import org.scalatest.{Matchers, OptionValues, WordSpec} -class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionValues { +class TracerSpec extends WordSpec with Matchers with SpanBuilding with SpanInspection with OptionValues { "the Kamon tracer" should { "construct a minimal Span that only has a operation name" in { @@ -100,7 +100,4 @@ class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionVal val tracer: Tracer = Kamon - def inspect(span: Span): SpanInspector = - SpanInspector(span) - } -- cgit v1.2.3