aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-08-15 00:33:06 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-08-15 00:33:06 +0200
commita90d4aa75e7fdf12a85177f4e81463439bfe5bb3 (patch)
tree2b815c06862332752ff4192c4bdceb4413cf2945 /kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
parent86c72d622ac027dc96f9a744771c0a468d46dc60 (diff)
downloadKamon-a90d4aa75e7fdf12a85177f4e81463439bfe5bb3.tar.gz
Kamon-a90d4aa75e7fdf12a85177f4e81463439bfe5bb3.tar.bz2
Kamon-a90d4aa75e7fdf12a85177f4e81463439bfe5bb3.zip
separate the build into core, testkit and core-tests projects
Diffstat (limited to 'kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala')
-rw-r--r--kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala61
1 files changed, 0 insertions, 61 deletions
diff --git a/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala b/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
deleted file mode 100644
index f23fba98..00000000
--- a/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
+++ /dev/null
@@ -1,61 +0,0 @@
-package kamon.testkit
-
-import kamon.trace.{Span, SpanContext}
-import kamon.trace.Span.FinishedSpan
-import kamon.util.Clock
-
-import scala.reflect.ClassTag
-import scala.util.Try
-
-class SpanInspector(span: Span) {
- private val (realSpan, spanData) = Try {
- val realSpan = span match {
- case _: Span.Local => span
- }
-
- val spanData = invoke[Span.Local, FinishedSpan](realSpan, "toFinishedSpan", classOf[Long] -> Long.box(Clock.microTimestamp()))
- (realSpan, spanData)
- }.getOrElse((null, null))
-
- def isEmpty: Boolean =
- realSpan == null
-
- def spanTag(key: String): Option[Span.TagValue] =
- spanData.tags.get(key)
-
- def spanTags(): Map[String, Span.TagValue] =
- spanData.tags
-
- def metricTags(): Map[String, String] =
- getField[Span.Local, Map[String, String]](realSpan, "customMetricTags")
-
- def startTimestamp(): Long =
- getField[Span.Local, Long](realSpan, "startTimestampMicros")
-
- def context(): SpanContext =
- spanData.context
-
- def operationName(): String =
- spanData.operationName
-
-
-
-
- private def getField[T, R](target: Any, fieldName: String)(implicit classTag: ClassTag[T]): R = {
- val toFinishedSpanMethod = classTag.runtimeClass.getDeclaredField(fieldName)
- toFinishedSpanMethod.setAccessible(true)
- toFinishedSpanMethod.get(target).asInstanceOf[R]
- }
-
- private def invoke[T, R](target: Any, fieldName: String, parameters: (Class[_], AnyRef)*)(implicit classTag: ClassTag[T]): R = {
- val parameterClasses = parameters.map(_._1)
- val parameterInstances = parameters.map(_._2)
- val toFinishedSpanMethod = classTag.runtimeClass.getDeclaredMethod(fieldName, parameterClasses: _*)
- toFinishedSpanMethod.setAccessible(true)
- toFinishedSpanMethod.invoke(target, parameterInstances: _*).asInstanceOf[R]
- }
-}
-
-object SpanInspector {
- def apply(span: Span): SpanInspector = new SpanInspector(span)
-}