aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/GoogleTracerSpec.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/GoogleTracerSpec.scala')
-rw-r--r--src/test/scala/GoogleTracerSpec.scala51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/test/scala/GoogleTracerSpec.scala b/src/test/scala/GoogleTracerSpec.scala
new file mode 100644
index 0000000..fcdd73b
--- /dev/null
+++ b/src/test/scala/GoogleTracerSpec.scala
@@ -0,0 +1,51 @@
+package xyz.driver.tracing
+
+import java.nio.file._
+
+import akka.actor._
+import akka.stream._
+import akka.http.scaladsl.server.Directives._
+import akka.http.scaladsl.server._
+import akka.http.scaladsl.testkit.ScalatestRouteTest
+import org.scalatest._
+import xyz.driver.tracing.TracingDirectives._
+
+import scala.concurrent._
+import scala.concurrent.duration._
+
+class GoogleTracerSpec extends FlatSpec {
+
+ implicit val system = ActorSystem(this.getClass.getSimpleName)
+ import system.dispatcher
+ implicit val materializer = ActorMaterializer()
+
+ "Google Tracer" should "submit" in {
+ val tracer = new GoogleTracer(
+ "driverinc-sandbox",
+ Paths.get(
+ system.settings.config.getString("tracing.google.service-account-file"))
+ )
+
+ // create 100 traces, each with 10 nested spans
+ for (_ <- 0 until 100) {
+ (0 until 10).foldLeft(Span(name = "trace-test.driver.xyz")) {
+ case (previous, i) =>
+ val p: Span = previous
+ val span = Span(
+ name = s"trace-test.driver.xyz-$i",
+ traceId = previous.traceId,
+ parentSpanId = Some(previous.spanId)
+ )
+ Thread.sleep(2)
+ val done = span.end()
+ tracer.submit(done)
+ done
+ }
+ }
+
+ // TODO: automatically verify that traces were created on google stack driver
+
+ Await.ready(tracer.close(), 30.seconds)
+ }
+
+}