@@ -185,16 +185,18 @@ public async Task TestDDBScanUnsuccessful()
185185
186186 [ Fact ]
187187#if NETFRAMEWORK
188- public void TestSQSSendMessageSuccessful ( )
188+ public void TestSQSSendMessageSuccessfulSampled ( )
189189#else
190- public async Task TestSQSSendMessageSuccessful ( )
190+ public async Task TestSQSSendMessageSuccessfulSampled ( )
191191#endif
192192 {
193193 var exportedItems = new List < Activity > ( ) ;
194194
195195 var parent = new Activity ( "parent" ) . Start ( ) ;
196196 var requestId = @"fakerequ-esti-dfak-ereq-uestidfakere" ;
197197
198+ SendMessageRequest send_msg_req ;
199+
198200 using ( Sdk . CreateTracerProviderBuilder ( )
199201 . AddXRayTraceId ( )
200202 . SetSampler ( new AlwaysOnSampler ( ) )
@@ -208,7 +210,7 @@ public async Task TestSQSSendMessageSuccessful()
208210 var sqs = new AmazonSQSClient ( new AnonymousAWSCredentials ( ) , RegionEndpoint . USEast1 ) ;
209211 var dummyResponse = "{}" ;
210212 CustomResponses . SetResponse ( sqs , dummyResponse , requestId , true ) ;
211- var send_msg_req = new SendMessageRequest
213+ send_msg_req = new SendMessageRequest
212214 {
213215 QueueUrl = "https://sqs.us-east-1.amazonaws.com/123456789/MyTestQueue" ,
214216 MessageBody = "Hello from OT" ,
@@ -230,6 +232,65 @@ public async Task TestSQSSendMessageSuccessful()
230232
231233 Assert . Equal ( ActivityStatusCode . Unset , awssdk_activity . Status ) ;
232234 Assert . Equal ( requestId , Utils . GetTagValue ( awssdk_activity , "aws.request_id" ) ) ;
235+
236+ Assert . Equal ( 2 , send_msg_req . MessageAttributes . Count ) ;
237+ Assert . Contains (
238+ send_msg_req . MessageAttributes ,
239+ kv => kv . Key == "traceparent" && kv . Value . StringValue == $ "00-{ awssdk_activity . TraceId } -{ awssdk_activity . SpanId } -01") ;
240+ Assert . Contains (
241+ send_msg_req . MessageAttributes ,
242+ kv => kv . Key == "Custom" && kv . Value . StringValue == "Value" ) ;
243+ }
244+
245+ [ Fact ]
246+ #if NETFRAMEWORK
247+ public void TestSQSSendMessageSuccessfulNotSampled ( )
248+ #else
249+ public async Task TestSQSSendMessageSuccessfulNotSampled ( )
250+ #endif
251+ {
252+ var exportedItems = new List < Activity > ( ) ;
253+
254+ var parent = new Activity ( "parent" ) . Start ( ) ;
255+ var requestId = @"fakerequ-esti-dfak-ereq-uestidfakere" ;
256+
257+ SendMessageRequest send_msg_req ;
258+
259+ using ( Sdk . CreateTracerProviderBuilder ( )
260+ . AddXRayTraceId ( )
261+ . SetSampler ( new AlwaysOffSampler ( ) )
262+ . AddAWSInstrumentation ( o =>
263+ {
264+ o . SemanticConventionVersion = SemanticConventionVersion . Latest ;
265+ } )
266+ . AddInMemoryExporter ( exportedItems )
267+ . Build ( ) )
268+ {
269+ var sqs = new AmazonSQSClient ( new AnonymousAWSCredentials ( ) , RegionEndpoint . USEast1 ) ;
270+ var dummyResponse = "{}" ;
271+ CustomResponses . SetResponse ( sqs , dummyResponse , requestId , true ) ;
272+ send_msg_req = new SendMessageRequest
273+ {
274+ QueueUrl = "https://sqs.us-east-1.amazonaws.com/123456789/MyTestQueue" ,
275+ MessageBody = "Hello from OT" ,
276+ } ;
277+ send_msg_req . MessageAttributes . Add ( "Custom" , new MessageAttributeValue { StringValue = "Value" , DataType = "String" } ) ;
278+ #if NETFRAMEWORK
279+ sqs . SendMessage ( send_msg_req ) ;
280+ #else
281+ await sqs . SendMessageAsync ( send_msg_req ) ;
282+ #endif
283+ }
284+
285+ Assert . Empty ( exportedItems ) ;
286+
287+ Assert . Equal ( 2 , send_msg_req . MessageAttributes . Count ) ;
288+ Assert . Contains (
289+ send_msg_req . MessageAttributes ,
290+ kv => kv . Key == "traceparent" && kv . Value . StringValue == $ "00-{ parent . TraceId } -{ parent . SpanId } -00") ;
291+ Assert . Contains (
292+ send_msg_req . MessageAttributes ,
293+ kv => kv . Key == "Custom" && kv . Value . StringValue == "Value" ) ;
233294 }
234295
235296 [ Fact ]
0 commit comments