@@ -356,18 +356,34 @@ public async Task ExportsSpansCreatedForRetries()
356356 }
357357
358358 [ Theory ]
359- [ InlineData ( "CONNECT" , "CONNECT" ) ]
360- [ InlineData ( "DELETE" , "DELETE" ) ]
361- [ InlineData ( "GET" , "GET" ) ]
362- [ InlineData ( "PUT" , "PUT" ) ]
363- [ InlineData ( "HEAD" , "HEAD" ) ]
364- [ InlineData ( "OPTIONS" , "OPTIONS" ) ]
365- [ InlineData ( "PATCH" , "PATCH" ) ]
366- [ InlineData ( "Get" , "GET" ) ]
367- [ InlineData ( "POST" , "POST" ) ]
368- [ InlineData ( "TRACE" , "TRACE" ) ]
369- [ InlineData ( "CUSTOM" , "_OTHER" ) ]
370- public async Task HttpRequestMethodIsSetOnActivityAsPerSpec ( string originalMethod , string expectedMethod )
359+ [ InlineData ( "CONNECT" , "CONNECT" , null ) ]
360+ [ InlineData ( "DELETE" , "DELETE" , null ) ]
361+ [ InlineData ( "GET" , "GET" , null ) ]
362+ [ InlineData ( "PUT" , "PUT" , null ) ]
363+ [ InlineData ( "HEAD" , "HEAD" , null ) ]
364+ [ InlineData ( "OPTIONS" , "OPTIONS" , null ) ]
365+ [ InlineData ( "PATCH" , "PATCH" , null ) ]
366+ [ InlineData ( "POST" , "POST" , null ) ]
367+ [ InlineData ( "TRACE" , "TRACE" , null ) ]
368+ [ InlineData ( "Delete" , "DELETE" , "Delete" ) ]
369+ #if NETFRAMEWORK
370+ [ InlineData ( "Connect" , "CONNECT" , null ) ] // HTTP Client converts Connect to its canonical form (Connect). Expected original method is null.
371+ [ InlineData ( "Get" , "GET" , null ) ] // HTTP Client converts Get to its canonical form (GET). Expected original method is null.
372+ [ InlineData ( "Put" , "PUT" , null ) ] // HTTP Client converts Put to its canonical form (PUT). Expected original method is null.
373+ [ InlineData ( "Head" , "HEAD" , null ) ] // HTTP Client converts Head to its canonical form (HEAD). Expected original method is null.
374+ [ InlineData ( "Post" , "POST" , null ) ] // HTTP Client converts Post to its canonical form (POST). Expected original method is null.
375+ #else
376+ [ InlineData ( "Connect" , "CONNECT" , "Connect" ) ]
377+ [ InlineData ( "Get" , "GET" , "Get" ) ]
378+ [ InlineData ( "Put" , "PUT" , "Put" ) ]
379+ [ InlineData ( "Head" , "HEAD" , "Head" ) ]
380+ [ InlineData ( "Post" , "POST" , "Post" ) ]
381+ #endif
382+ [ InlineData ( "Options" , "OPTIONS" , "Options" ) ]
383+ [ InlineData ( "Patch" , "PATCH" , "Patch" ) ]
384+ [ InlineData ( "Trace" , "TRACE" , "Trace" ) ]
385+ [ InlineData ( "CUSTOM" , "_OTHER" , "CUSTOM" ) ]
386+ public async Task HttpRequestMethodIsSetOnActivityAsPerSpec ( string originalMethod , string expectedMethod , string expectedOriginalMethod )
371387 {
372388 var exportedItems = new List < Activity > ( ) ;
373389 using var request = new HttpRequestMessage
@@ -396,20 +412,17 @@ public async Task HttpRequestMethodIsSetOnActivityAsPerSpec(string originalMetho
396412
397413 var activity = exportedItems [ 0 ] ;
398414
399- Assert . Contains ( activity . TagObjects , t => t . Key == SemanticConventions . AttributeHttpRequestMethod ) ;
400-
401415 if ( originalMethod . Equals ( expectedMethod , StringComparison . OrdinalIgnoreCase ) )
402416 {
403417 Assert . Equal ( expectedMethod , activity . DisplayName ) ;
404- Assert . DoesNotContain ( activity . TagObjects , t => t . Key == SemanticConventions . AttributeHttpRequestMethodOriginal ) ;
405418 }
406419 else
407420 {
408421 Assert . Equal ( "HTTP" , activity . DisplayName ) ;
409- Assert . Equal ( originalMethod , activity . GetTagValue ( SemanticConventions . AttributeHttpRequestMethodOriginal ) as string ) ;
410422 }
411423
412- Assert . Equal ( expectedMethod , activity . GetTagValue ( SemanticConventions . AttributeHttpRequestMethod ) as string ) ;
424+ Assert . Equal ( expectedMethod , activity . GetTagValue ( SemanticConventions . AttributeHttpRequestMethod ) ) ;
425+ Assert . Equal ( expectedOriginalMethod , activity . GetTagValue ( SemanticConventions . AttributeHttpRequestMethodOriginal ) ) ;
413426 }
414427
415428 [ Theory ]
@@ -423,6 +436,7 @@ public async Task HttpRequestMethodIsSetOnActivityAsPerSpec(string originalMetho
423436 [ InlineData ( "Get" , "GET" ) ]
424437 [ InlineData ( "POST" , "POST" ) ]
425438 [ InlineData ( "TRACE" , "TRACE" ) ]
439+ [ InlineData ( "Trace" , "TRACE" ) ]
426440 [ InlineData ( "CUSTOM" , "_OTHER" ) ]
427441 public async Task HttpRequestMethodIsSetonRequestDurationMetricAsPerSpec ( string originalMethod , string expectedMethod )
428442 {
0 commit comments