11package test
22
3+ import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
4+
35import com.fasterxml.jackson.databind.ObjectMapper
46import com.google.common.util.concurrent.ListenableFuture
57import com.twilio.Twilio
@@ -10,7 +12,9 @@ import com.twilio.http.TwilioRestClient
1012import com.twilio.rest.api.v2010.account.Call
1113import com.twilio.rest.api.v2010.account.Message
1214import com.twilio.type.PhoneNumber
13- import datadog.trace.agent.test.AgentTestRunner
15+ import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
16+ import datadog.trace.agent.test.naming.VersionedNamingTestBase
17+ import datadog.trace.api.Config
1418import datadog.trace.api.DDSpanTypes
1519import datadog.trace.bootstrap.instrumentation.api.Tags
1620import org.apache.http.HttpEntity
@@ -23,9 +27,7 @@ import org.apache.http.impl.client.HttpClientBuilder
2327import java.util.concurrent.ExecutionException
2428import java.util.concurrent.TimeUnit
2529
26- import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
27-
28- class TwilioClientTest extends AgentTestRunner {
30+ abstract class TwilioClientTest extends VersionedNamingTestBase {
2931
3032 // Made up Twilio Account IDs and Auth token
3133 final static String SHORT_SID = " abc"
@@ -113,6 +115,13 @@ class TwilioClientTest extends AgentTestRunner {
113115 Twilio . setRestClient(null )
114116 }
115117
118+ abstract String httpClientOperation ()
119+
120+ @Override
121+ String operation () {
122+ return " twilio.sdk"
123+ }
124+
116125 def " synchronous message" () {
117126 setup :
118127 twilioRestClient. getObjectMapper() >> new ObjectMapper ()
@@ -143,8 +152,8 @@ class TwilioClientTest extends AgentTestRunner {
143152 }
144153 }
145154 span {
146- serviceName " twilio-sdk "
147- operationName " twilio.sdk "
155+ serviceName service()
156+ operationName operation()
148157 resourceName " api.v2010.account.MessageCreator.create"
149158 spanType DDSpanTypes . HTTP_CLIENT
150159 errored false
@@ -156,7 +165,7 @@ class TwilioClientTest extends AgentTestRunner {
156165 " twilio.account" " $LONG_SID "
157166 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
158167 " twilio.status" " sent"
159- defaultTags ()
168+ defaultTagsNoPeerService ()
160169 }
161170 }
162171 }
@@ -195,8 +204,8 @@ class TwilioClientTest extends AgentTestRunner {
195204 }
196205 }
197206 span {
198- serviceName " twilio-sdk "
199- operationName " twilio.sdk "
207+ serviceName service()
208+ operationName operation()
200209 resourceName " api.v2010.account.CallCreator.create"
201210 spanType DDSpanTypes . HTTP_CLIENT
202211 errored false
@@ -208,7 +217,7 @@ class TwilioClientTest extends AgentTestRunner {
208217 " twilio.account" " ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
209218 " twilio.sid" " CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
210219 " twilio.status" " completed"
211- defaultTags ()
220+ defaultTagsNoPeerService ()
212221 }
213222 }
214223 }
@@ -269,8 +278,8 @@ class TwilioClientTest extends AgentTestRunner {
269278 }
270279 }
271280 span {
272- serviceName " twilio-sdk "
273- operationName " twilio.sdk "
281+ serviceName service()
282+ operationName operation()
274283 resourceName " api.v2010.account.MessageCreator.create"
275284 spanType DDSpanTypes . HTTP_CLIENT
276285 errored false
@@ -282,12 +291,12 @@ class TwilioClientTest extends AgentTestRunner {
282291 " twilio.account" " $LONG_SID "
283292 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
284293 " twilio.status" " sent"
285- defaultTags ()
294+ defaultTagsNoPeerService ()
286295 }
287296 }
288297 span {
289- serviceName " twilio-sdk "
290- operationName " http.request "
298+ serviceName service()
299+ operationName httpClientOperation()
291300 resourceName " POST /?/Accounts/abc/Messages.json"
292301 spanType DDSpanTypes . HTTP_CLIENT
293302 errored false
@@ -375,8 +384,8 @@ class TwilioClientTest extends AgentTestRunner {
375384 }
376385 }
377386 span {
378- serviceName " twilio-sdk "
379- operationName " twilio.sdk "
387+ serviceName service()
388+ operationName operation()
380389 resourceName " api.v2010.account.MessageCreator.create"
381390 spanType DDSpanTypes . HTTP_CLIENT
382391 errored false
@@ -388,12 +397,12 @@ class TwilioClientTest extends AgentTestRunner {
388397 " twilio.account" " $LONG_SID "
389398 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
390399 " twilio.status" " sent"
391- defaultTags ()
400+ defaultTagsNoPeerService ()
392401 }
393402 }
394403 span {
395- serviceName " twilio-sdk "
396- operationName " http.request "
404+ serviceName service()
405+ operationName httpClientOperation()
397406 resourceName " POST /?/Accounts/abc/Messages.json"
398407 spanType DDSpanTypes . HTTP_CLIENT
399408 errored false
@@ -409,8 +418,8 @@ class TwilioClientTest extends AgentTestRunner {
409418 }
410419 }
411420 span {
412- serviceName " twilio-sdk "
413- operationName " http.request "
421+ serviceName service()
422+ operationName httpClientOperation()
414423 resourceName " POST /?/Accounts/abc/Messages.json"
415424 spanType DDSpanTypes . HTTP_CLIENT
416425 errored false
@@ -505,8 +514,8 @@ class TwilioClientTest extends AgentTestRunner {
505514 }
506515 }
507516 span {
508- serviceName " twilio-sdk "
509- operationName " twilio.sdk "
517+ serviceName service()
518+ operationName operation()
510519 resourceName " api.v2010.account.MessageCreator.createAsync"
511520 spanType DDSpanTypes . HTTP_CLIENT
512521 errored false
@@ -518,12 +527,12 @@ class TwilioClientTest extends AgentTestRunner {
518527 " twilio.account" " $LONG_SID "
519528 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
520529 " twilio.status" " sent"
521- defaultTags ()
530+ defaultTagsNoPeerService ()
522531 }
523532 }
524533 span {
525- serviceName " twilio-sdk "
526- operationName " twilio.sdk "
534+ serviceName service()
535+ operationName operation()
527536 resourceName " api.v2010.account.MessageCreator.create"
528537 spanType DDSpanTypes . HTTP_CLIENT
529538 errored false
@@ -535,14 +544,14 @@ class TwilioClientTest extends AgentTestRunner {
535544 " twilio.account" " $LONG_SID "
536545 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
537546 " twilio.status" " sent"
538- defaultTags ()
547+ defaultTagsNoPeerService ()
539548 }
540549 }
541550 // Spans are reported in reverse order of completion,
542551 // so the error span is last even though it happened first.
543552 span {
544- serviceName " twilio-sdk "
545- operationName " http.request "
553+ serviceName service()
554+ operationName httpClientOperation()
546555 resourceName " POST /?/Accounts/abc/Messages.json"
547556 spanType DDSpanTypes . HTTP_CLIENT
548557 errored false
@@ -558,8 +567,8 @@ class TwilioClientTest extends AgentTestRunner {
558567 }
559568 }
560569 span {
561- serviceName " twilio-sdk "
562- operationName " http.request "
570+ serviceName service()
571+ operationName httpClientOperation()
563572 resourceName " POST /?/Accounts/abc/Messages.json"
564573 spanType DDSpanTypes . HTTP_CLIENT
565574 errored false
@@ -616,8 +625,8 @@ class TwilioClientTest extends AgentTestRunner {
616625 }
617626 }
618627 span {
619- serviceName " twilio-sdk "
620- operationName " twilio.sdk "
628+ serviceName service()
629+ operationName operation()
621630 resourceName " api.v2010.account.MessageCreator.create"
622631 spanType DDSpanTypes . HTTP_CLIENT
623632 errored true
@@ -626,7 +635,7 @@ class TwilioClientTest extends AgentTestRunner {
626635 " $Tags . COMPONENT " " twilio-sdk"
627636 " $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
628637 errorTags(ApiException , " Testing Failure" )
629- defaultTags ()
638+ defaultTagsNoPeerService ()
630639 }
631640 }
632641 }
@@ -652,8 +661,8 @@ class TwilioClientTest extends AgentTestRunner {
652661 assertTraces(1 ) {
653662 trace(1 ) {
654663 span {
655- serviceName " twilio-sdk "
656- operationName " twilio.sdk "
664+ serviceName service()
665+ operationName operation()
657666 resourceName " api.v2010.account.MessageCreator.create"
658667 parent()
659668 spanType DDSpanTypes . HTTP_CLIENT
@@ -666,7 +675,7 @@ class TwilioClientTest extends AgentTestRunner {
666675 " twilio.account" " $LONG_SID "
667676 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
668677 " twilio.status" " sent"
669- defaultTags ()
678+ defaultTagsNoPeerService ()
670679 }
671680 }
672681 }
@@ -714,8 +723,8 @@ class TwilioClientTest extends AgentTestRunner {
714723 }
715724 }
716725 span {
717- serviceName " twilio-sdk "
718- operationName " twilio.sdk "
726+ serviceName service()
727+ operationName operation()
719728 resourceName " api.v2010.account.MessageCreator.createAsync"
720729 spanType DDSpanTypes . HTTP_CLIENT
721730 errored false
@@ -727,12 +736,12 @@ class TwilioClientTest extends AgentTestRunner {
727736 " twilio.account" " $LONG_SID "
728737 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
729738 " twilio.status" " sent"
730- defaultTags ()
739+ defaultTagsNoPeerService ()
731740 }
732741 }
733742 span {
734- serviceName " twilio-sdk "
735- operationName " twilio.sdk "
743+ serviceName service()
744+ operationName operation()
736745 resourceName " api.v2010.account.MessageCreator.create"
737746 spanType DDSpanTypes . HTTP_CLIENT
738747 errored false
@@ -744,7 +753,7 @@ class TwilioClientTest extends AgentTestRunner {
744753 " twilio.account" " $LONG_SID "
745754 " twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
746755 " twilio.status" " sent"
747- defaultTags ()
756+ defaultTagsNoPeerService ()
748757 }
749758 }
750759 }
@@ -800,8 +809,8 @@ class TwilioClientTest extends AgentTestRunner {
800809 }
801810 }
802811 span {
803- serviceName " twilio-sdk "
804- operationName " twilio.sdk "
812+ serviceName service()
813+ operationName operation()
805814 resourceName " api.v2010.account.MessageCreator.createAsync"
806815 spanType DDSpanTypes . HTTP_CLIENT
807816 errored true
@@ -810,12 +819,12 @@ class TwilioClientTest extends AgentTestRunner {
810819 " $Tags . COMPONENT " " twilio-sdk"
811820 " $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
812821 errorTags(ApiException , " Testing Failure" )
813- defaultTags ()
822+ defaultTagsNoPeerService ()
814823 }
815824 }
816825 span {
817- serviceName " twilio-sdk "
818- operationName " twilio.sdk "
826+ serviceName service()
827+ operationName operation()
819828 resourceName " api.v2010.account.MessageCreator.create"
820829 spanType DDSpanTypes . HTTP_CLIENT
821830 errored true
@@ -824,10 +833,46 @@ class TwilioClientTest extends AgentTestRunner {
824833 " $Tags . COMPONENT " " twilio-sdk"
825834 " $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
826835 errorTags(ApiException , " Testing Failure" )
827- defaultTags ()
836+ defaultTagsNoPeerService ()
828837 }
829838 }
830839 }
831840 }
832841 }
833842}
843+
844+ class TwilioClientV0Test extends TwilioClientTest {
845+
846+ @Override
847+ int version () {
848+ return 0
849+ }
850+
851+ @Override
852+ String service () {
853+ return " twilio-sdk"
854+ }
855+
856+ @Override
857+ String httpClientOperation () {
858+ return new TestingGenericHttpNamingConventions.ClientV0 (){}. operation()
859+ }
860+ }
861+
862+ class TwilioClientV1ForkedTest extends TwilioClientTest {
863+
864+ @Override
865+ int version () {
866+ return 1
867+ }
868+
869+ @Override
870+ String service () {
871+ return Config . get(). getServiceName()
872+ }
873+
874+ @Override
875+ String httpClientOperation () {
876+ return new TestingGenericHttpNamingConventions.ClientV1 (){}. operation()
877+ }
878+ }
0 commit comments