@@ -2,16 +2,25 @@ import datadog.trace.agent.test.AgentTestRunner
22import datadog.trace.api.DDSpanTypes
33import okhttp3.OkHttpClient
44import okhttp3.Request
5+ import spark.Spark
56import spock.lang.Timeout
67
78
89@Timeout (20 )
910class SparkJavaBasedTest extends AgentTestRunner {
1011
11- static {
12+ def setupSpec () {
1213 TestSparkJavaApplication . initSpark()
1314 }
1415
16+ def cleanupSpec () {
17+ Spark . stop()
18+ }
19+
20+ def setup () {
21+ TEST_WRITER . start()
22+ }
23+
1524 private int port = 4567
1625 OkHttpClient client = new OkHttpClient.Builder (). build()
1726
@@ -26,6 +35,19 @@ class SparkJavaBasedTest extends AgentTestRunner {
2635 expect :
2736 port != 0
2837 response. body(). string() == " Hello World"
38+ }
39+
40+ def " valid response with registered trace" () {
41+ setup :
42+ def request = new Request.Builder ()
43+ .url(" http://localhost:$port /" )
44+ .get()
45+ .build()
46+ def response = client. newCall(request). execute()
47+
48+ expect :
49+ port != 0
50+ response. body(). string() == " Hello World"
2951
3052 and :
3153 TEST_WRITER . waitForTraces(1 )
@@ -48,22 +70,22 @@ class SparkJavaBasedTest extends AgentTestRunner {
4870
4971 def trace = TEST_WRITER . firstTrace()
5072 trace. size() == 1
51- def span = trace[0 ]
52-
53- span . context() . operationName == " jetty.request"
54- span . context() . resourceName == " GET /param/:param/"
55- span . context() . spanType == DDSpanTypes . WEB_SERVLET
56- ! span . context() . getErrorFlag()
57- span . context() . parentId == 0
58- span . context() . tags[" http.url" ] == " http://localhost:$port /param/asdf1234/"
59- span . context() . tags[" http.method" ] == " GET"
60- span . context() . tags[" span.kind" ] == " server"
61- span . context() . tags[" span.type" ] == " web"
62- span . context() . tags[" component" ] == " java-web-servlet"
63- span . context() . tags[" http.status_code" ] == 200
64- span . context() . tags[" thread.name" ] != null
65- span . context() . tags[" thread.id" ] != null
66- span . context() . tags. size() == 8
73+ def spanContext = trace[0 ]. context()
74+
75+ spanContext . operationName == " jetty.request"
76+ spanContext . resourceName == " GET /param/:param/"
77+ spanContext . spanType == DDSpanTypes . WEB_SERVLET
78+ ! spanContext . getErrorFlag()
79+ spanContext . parentId == 0
80+ spanContext . tags[" http.url" ] == " http://localhost:$port /param/asdf1234/"
81+ spanContext . tags[" http.method" ] == " GET"
82+ spanContext . tags[" span.kind" ] == " server"
83+ spanContext . tags[" span.type" ] == " web"
84+ spanContext . tags[" component" ] == " java-web-servlet"
85+ spanContext . tags[" http.status_code" ] == 200
86+ spanContext . tags[" thread.name" ] != null
87+ spanContext . tags[" thread.id" ] != null
88+ spanContext . tags. size() == 8
6789 }
6890
6991}
0 commit comments