1
1
package test
2
2
3
+ import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
4
+
3
5
import com.fasterxml.jackson.databind.ObjectMapper
4
6
import com.google.common.util.concurrent.ListenableFuture
5
7
import com.twilio.Twilio
@@ -10,7 +12,9 @@ import com.twilio.http.TwilioRestClient
10
12
import com.twilio.rest.api.v2010.account.Call
11
13
import com.twilio.rest.api.v2010.account.Message
12
14
import 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
14
18
import datadog.trace.api.DDSpanTypes
15
19
import datadog.trace.bootstrap.instrumentation.api.Tags
16
20
import org.apache.http.HttpEntity
@@ -23,9 +27,7 @@ import org.apache.http.impl.client.HttpClientBuilder
23
27
import java.util.concurrent.ExecutionException
24
28
import java.util.concurrent.TimeUnit
25
29
26
- import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace
27
-
28
- class TwilioClientTest extends AgentTestRunner {
30
+ abstract class TwilioClientTest extends VersionedNamingTestBase {
29
31
30
32
// Made up Twilio Account IDs and Auth token
31
33
final static String SHORT_SID = " abc"
@@ -113,6 +115,13 @@ class TwilioClientTest extends AgentTestRunner {
113
115
Twilio . setRestClient(null )
114
116
}
115
117
118
+ abstract String httpClientOperation ()
119
+
120
+ @Override
121
+ String operation () {
122
+ return " twilio.sdk"
123
+ }
124
+
116
125
def " synchronous message" () {
117
126
setup :
118
127
twilioRestClient. getObjectMapper() >> new ObjectMapper ()
@@ -143,8 +152,8 @@ class TwilioClientTest extends AgentTestRunner {
143
152
}
144
153
}
145
154
span {
146
- serviceName " twilio-sdk "
147
- operationName " twilio.sdk "
155
+ serviceName service()
156
+ operationName operation()
148
157
resourceName " api.v2010.account.MessageCreator.create"
149
158
spanType DDSpanTypes . HTTP_CLIENT
150
159
errored false
@@ -156,7 +165,7 @@ class TwilioClientTest extends AgentTestRunner {
156
165
" twilio.account" " $LONG_SID "
157
166
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
158
167
" twilio.status" " sent"
159
- defaultTags ()
168
+ defaultTagsNoPeerService ()
160
169
}
161
170
}
162
171
}
@@ -195,8 +204,8 @@ class TwilioClientTest extends AgentTestRunner {
195
204
}
196
205
}
197
206
span {
198
- serviceName " twilio-sdk "
199
- operationName " twilio.sdk "
207
+ serviceName service()
208
+ operationName operation()
200
209
resourceName " api.v2010.account.CallCreator.create"
201
210
spanType DDSpanTypes . HTTP_CLIENT
202
211
errored false
@@ -208,7 +217,7 @@ class TwilioClientTest extends AgentTestRunner {
208
217
" twilio.account" " ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
209
218
" twilio.sid" " CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
210
219
" twilio.status" " completed"
211
- defaultTags ()
220
+ defaultTagsNoPeerService ()
212
221
}
213
222
}
214
223
}
@@ -269,8 +278,8 @@ class TwilioClientTest extends AgentTestRunner {
269
278
}
270
279
}
271
280
span {
272
- serviceName " twilio-sdk "
273
- operationName " twilio.sdk "
281
+ serviceName service()
282
+ operationName operation()
274
283
resourceName " api.v2010.account.MessageCreator.create"
275
284
spanType DDSpanTypes . HTTP_CLIENT
276
285
errored false
@@ -282,12 +291,12 @@ class TwilioClientTest extends AgentTestRunner {
282
291
" twilio.account" " $LONG_SID "
283
292
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
284
293
" twilio.status" " sent"
285
- defaultTags ()
294
+ defaultTagsNoPeerService ()
286
295
}
287
296
}
288
297
span {
289
- serviceName " twilio-sdk "
290
- operationName " http.request "
298
+ serviceName service()
299
+ operationName httpClientOperation()
291
300
resourceName " POST /?/Accounts/abc/Messages.json"
292
301
spanType DDSpanTypes . HTTP_CLIENT
293
302
errored false
@@ -375,8 +384,8 @@ class TwilioClientTest extends AgentTestRunner {
375
384
}
376
385
}
377
386
span {
378
- serviceName " twilio-sdk "
379
- operationName " twilio.sdk "
387
+ serviceName service()
388
+ operationName operation()
380
389
resourceName " api.v2010.account.MessageCreator.create"
381
390
spanType DDSpanTypes . HTTP_CLIENT
382
391
errored false
@@ -388,12 +397,12 @@ class TwilioClientTest extends AgentTestRunner {
388
397
" twilio.account" " $LONG_SID "
389
398
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
390
399
" twilio.status" " sent"
391
- defaultTags ()
400
+ defaultTagsNoPeerService ()
392
401
}
393
402
}
394
403
span {
395
- serviceName " twilio-sdk "
396
- operationName " http.request "
404
+ serviceName service()
405
+ operationName httpClientOperation()
397
406
resourceName " POST /?/Accounts/abc/Messages.json"
398
407
spanType DDSpanTypes . HTTP_CLIENT
399
408
errored false
@@ -409,8 +418,8 @@ class TwilioClientTest extends AgentTestRunner {
409
418
}
410
419
}
411
420
span {
412
- serviceName " twilio-sdk "
413
- operationName " http.request "
421
+ serviceName service()
422
+ operationName httpClientOperation()
414
423
resourceName " POST /?/Accounts/abc/Messages.json"
415
424
spanType DDSpanTypes . HTTP_CLIENT
416
425
errored false
@@ -505,8 +514,8 @@ class TwilioClientTest extends AgentTestRunner {
505
514
}
506
515
}
507
516
span {
508
- serviceName " twilio-sdk "
509
- operationName " twilio.sdk "
517
+ serviceName service()
518
+ operationName operation()
510
519
resourceName " api.v2010.account.MessageCreator.createAsync"
511
520
spanType DDSpanTypes . HTTP_CLIENT
512
521
errored false
@@ -518,12 +527,12 @@ class TwilioClientTest extends AgentTestRunner {
518
527
" twilio.account" " $LONG_SID "
519
528
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
520
529
" twilio.status" " sent"
521
- defaultTags ()
530
+ defaultTagsNoPeerService ()
522
531
}
523
532
}
524
533
span {
525
- serviceName " twilio-sdk "
526
- operationName " twilio.sdk "
534
+ serviceName service()
535
+ operationName operation()
527
536
resourceName " api.v2010.account.MessageCreator.create"
528
537
spanType DDSpanTypes . HTTP_CLIENT
529
538
errored false
@@ -535,14 +544,14 @@ class TwilioClientTest extends AgentTestRunner {
535
544
" twilio.account" " $LONG_SID "
536
545
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
537
546
" twilio.status" " sent"
538
- defaultTags ()
547
+ defaultTagsNoPeerService ()
539
548
}
540
549
}
541
550
// Spans are reported in reverse order of completion,
542
551
// so the error span is last even though it happened first.
543
552
span {
544
- serviceName " twilio-sdk "
545
- operationName " http.request "
553
+ serviceName service()
554
+ operationName httpClientOperation()
546
555
resourceName " POST /?/Accounts/abc/Messages.json"
547
556
spanType DDSpanTypes . HTTP_CLIENT
548
557
errored false
@@ -558,8 +567,8 @@ class TwilioClientTest extends AgentTestRunner {
558
567
}
559
568
}
560
569
span {
561
- serviceName " twilio-sdk "
562
- operationName " http.request "
570
+ serviceName service()
571
+ operationName httpClientOperation()
563
572
resourceName " POST /?/Accounts/abc/Messages.json"
564
573
spanType DDSpanTypes . HTTP_CLIENT
565
574
errored false
@@ -616,8 +625,8 @@ class TwilioClientTest extends AgentTestRunner {
616
625
}
617
626
}
618
627
span {
619
- serviceName " twilio-sdk "
620
- operationName " twilio.sdk "
628
+ serviceName service()
629
+ operationName operation()
621
630
resourceName " api.v2010.account.MessageCreator.create"
622
631
spanType DDSpanTypes . HTTP_CLIENT
623
632
errored true
@@ -626,7 +635,7 @@ class TwilioClientTest extends AgentTestRunner {
626
635
" $Tags . COMPONENT " " twilio-sdk"
627
636
" $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
628
637
errorTags(ApiException , " Testing Failure" )
629
- defaultTags ()
638
+ defaultTagsNoPeerService ()
630
639
}
631
640
}
632
641
}
@@ -652,8 +661,8 @@ class TwilioClientTest extends AgentTestRunner {
652
661
assertTraces(1 ) {
653
662
trace(1 ) {
654
663
span {
655
- serviceName " twilio-sdk "
656
- operationName " twilio.sdk "
664
+ serviceName service()
665
+ operationName operation()
657
666
resourceName " api.v2010.account.MessageCreator.create"
658
667
parent()
659
668
spanType DDSpanTypes . HTTP_CLIENT
@@ -666,7 +675,7 @@ class TwilioClientTest extends AgentTestRunner {
666
675
" twilio.account" " $LONG_SID "
667
676
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
668
677
" twilio.status" " sent"
669
- defaultTags ()
678
+ defaultTagsNoPeerService ()
670
679
}
671
680
}
672
681
}
@@ -714,8 +723,8 @@ class TwilioClientTest extends AgentTestRunner {
714
723
}
715
724
}
716
725
span {
717
- serviceName " twilio-sdk "
718
- operationName " twilio.sdk "
726
+ serviceName service()
727
+ operationName operation()
719
728
resourceName " api.v2010.account.MessageCreator.createAsync"
720
729
spanType DDSpanTypes . HTTP_CLIENT
721
730
errored false
@@ -727,12 +736,12 @@ class TwilioClientTest extends AgentTestRunner {
727
736
" twilio.account" " $LONG_SID "
728
737
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
729
738
" twilio.status" " sent"
730
- defaultTags ()
739
+ defaultTagsNoPeerService ()
731
740
}
732
741
}
733
742
span {
734
- serviceName " twilio-sdk "
735
- operationName " twilio.sdk "
743
+ serviceName service()
744
+ operationName operation()
736
745
resourceName " api.v2010.account.MessageCreator.create"
737
746
spanType DDSpanTypes . HTTP_CLIENT
738
747
errored false
@@ -744,7 +753,7 @@ class TwilioClientTest extends AgentTestRunner {
744
753
" twilio.account" " $LONG_SID "
745
754
" twilio.sid" " MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
746
755
" twilio.status" " sent"
747
- defaultTags ()
756
+ defaultTagsNoPeerService ()
748
757
}
749
758
}
750
759
}
@@ -800,8 +809,8 @@ class TwilioClientTest extends AgentTestRunner {
800
809
}
801
810
}
802
811
span {
803
- serviceName " twilio-sdk "
804
- operationName " twilio.sdk "
812
+ serviceName service()
813
+ operationName operation()
805
814
resourceName " api.v2010.account.MessageCreator.createAsync"
806
815
spanType DDSpanTypes . HTTP_CLIENT
807
816
errored true
@@ -810,12 +819,12 @@ class TwilioClientTest extends AgentTestRunner {
810
819
" $Tags . COMPONENT " " twilio-sdk"
811
820
" $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
812
821
errorTags(ApiException , " Testing Failure" )
813
- defaultTags ()
822
+ defaultTagsNoPeerService ()
814
823
}
815
824
}
816
825
span {
817
- serviceName " twilio-sdk "
818
- operationName " twilio.sdk "
826
+ serviceName service()
827
+ operationName operation()
819
828
resourceName " api.v2010.account.MessageCreator.create"
820
829
spanType DDSpanTypes . HTTP_CLIENT
821
830
errored true
@@ -824,10 +833,46 @@ class TwilioClientTest extends AgentTestRunner {
824
833
" $Tags . COMPONENT " " twilio-sdk"
825
834
" $Tags . SPAN_KIND " Tags . SPAN_KIND_CLIENT
826
835
errorTags(ApiException , " Testing Failure" )
827
- defaultTags ()
836
+ defaultTagsNoPeerService ()
828
837
}
829
838
}
830
839
}
831
840
}
832
841
}
833
842
}
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