@@ -140,16 +140,43 @@ public async Task InvokeAsync_SendTraceHeader(string protocolName, HttpTransport
140
140
141
141
var connection = connectionBuilder . Build ( ) ;
142
142
143
- using var clientActivity = new Activity ( "ClientActivity" ) ;
144
- clientActivity . Start ( ) ;
145
-
143
+ Activity clientActivity1 = null ;
144
+ Activity clientActivity2 = null ;
146
145
try
147
146
{
148
147
await connection . StartAsync ( ) . DefaultTimeout ( ) ;
149
148
150
- var result = await connection . InvokeAsync < string > ( nameof ( TestHub . HelloWorld ) ) . DefaultTimeout ( ) ;
149
+ // Invocation 1
150
+ try
151
+ {
152
+ clientActivity1 = new Activity ( "ClientActivity1" ) ;
153
+ clientActivity1 . AddBaggage ( "baggage-1" , "value-1" ) ;
154
+ clientActivity1 . Start ( ) ;
151
155
152
- Assert . Equal ( "Hello World!" , result ) ;
156
+ var result = await connection . InvokeAsync < string > ( nameof ( TestHub . HelloWorld ) ) . DefaultTimeout ( ) ;
157
+
158
+ Assert . Equal ( "Hello World!" , result ) ;
159
+ }
160
+ finally
161
+ {
162
+ clientActivity1 ? . Stop ( ) ;
163
+ }
164
+
165
+ // Invocation 2
166
+ try
167
+ {
168
+ clientActivity2 = new Activity ( "ClientActivity2" ) ;
169
+ clientActivity2 . AddBaggage ( "baggage-2" , "value-2" ) ;
170
+ clientActivity2 . Start ( ) ;
171
+
172
+ var result = await connection . InvokeAsync < string > ( nameof ( TestHub . HelloWorld ) ) . DefaultTimeout ( ) ;
173
+
174
+ Assert . Equal ( "Hello World!" , result ) ;
175
+ }
176
+ finally
177
+ {
178
+ clientActivity2 ? . Stop ( ) ;
179
+ }
153
180
}
154
181
catch ( Exception ex )
155
182
{
@@ -158,11 +185,10 @@ public async Task InvokeAsync_SendTraceHeader(string protocolName, HttpTransport
158
185
}
159
186
finally
160
187
{
161
- clientActivity . Stop ( ) ;
162
188
await connection . DisposeAsync ( ) . DefaultTimeout ( ) ;
163
189
}
164
190
165
- var activities = await channel . Reader . ReadAtLeastAsync ( minimumCount : 3 ) . DefaultTimeout ( ) ;
191
+ var activities = await channel . Reader . ReadAtLeastAsync ( minimumCount : 4 ) . DefaultTimeout ( ) ;
166
192
167
193
var hubName = path switch
168
194
{
@@ -178,18 +204,38 @@ public async Task InvokeAsync_SendTraceHeader(string protocolName, HttpTransport
178
204
Assert . Equal ( $ "{ hubName } /OnConnectedAsync", a . OperationName ) ;
179
205
Assert . Equal ( "Microsoft.AspNetCore.Hosting.HttpRequestIn" , a . Parent . OperationName ) ;
180
206
Assert . False ( a . HasRemoteParent ) ;
207
+ Assert . Empty ( a . Baggage ) ;
181
208
} ,
182
209
a =>
183
210
{
184
211
Assert . Equal ( $ "{ hubName } /HelloWorld", a . OperationName ) ;
212
+ Assert . Equal ( clientActivity1 . Id , a . ParentId ) ;
185
213
Assert . True ( a . HasRemoteParent ) ;
186
- Assert . Equal ( clientActivity . Id , a . ParentId ) ;
214
+ Assert . Collection ( a . Baggage ,
215
+ b =>
216
+ {
217
+ Assert . Equal ( "baggage-1" , b . Key ) ;
218
+ Assert . Equal ( "value-1" , b . Value ) ;
219
+ } ) ;
220
+ } ,
221
+ a =>
222
+ {
223
+ Assert . Equal ( $ "{ hubName } /HelloWorld", a . OperationName ) ;
224
+ Assert . Equal ( clientActivity2 . Id , a . ParentId ) ;
225
+ Assert . True ( a . HasRemoteParent ) ;
226
+ Assert . Collection ( a . Baggage ,
227
+ b =>
228
+ {
229
+ Assert . Equal ( "baggage-2" , b . Key ) ;
230
+ Assert . Equal ( "value-2" , b . Value ) ;
231
+ } ) ;
187
232
} ,
188
233
a =>
189
234
{
190
235
Assert . Equal ( $ "{ hubName } /OnDisconnectedAsync", a . OperationName ) ;
191
236
Assert . Equal ( "Microsoft.AspNetCore.Hosting.HttpRequestIn" , a . Parent . OperationName ) ;
192
237
Assert . False ( a . HasRemoteParent ) ;
238
+ Assert . Empty ( a . Baggage ) ;
193
239
} ) ;
194
240
}
195
241
}
@@ -570,12 +616,15 @@ public async Task StreamAsyncCore_SendTraceHeader(string protocolName, HttpTrans
570
616
571
617
var connection = CreateHubConnection ( server . Url , path , transportType , protocol , LoggerFactory ) ;
572
618
573
- using var clientActivity = new Activity ( "ClientActivity" ) ;
574
- clientActivity . Start ( ) ;
575
-
619
+ Activity clientActivity = null ;
576
620
try
577
621
{
578
622
await connection . StartAsync ( ) . DefaultTimeout ( ) ;
623
+
624
+ clientActivity = new Activity ( "ClientActivity" ) ;
625
+ clientActivity . AddBaggage ( "baggage-1" , "value-1" ) ;
626
+ clientActivity . Start ( ) ;
627
+
579
628
var expectedValue = 0 ;
580
629
var streamTo = 5 ;
581
630
var asyncEnumerable = connection . StreamAsyncCore < int > ( "Stream" , new object [ ] { streamTo } ) ;
@@ -594,7 +643,7 @@ public async Task StreamAsyncCore_SendTraceHeader(string protocolName, HttpTrans
594
643
}
595
644
finally
596
645
{
597
- clientActivity . Stop ( ) ;
646
+ clientActivity ? . Stop ( ) ;
598
647
await connection . DisposeAsync ( ) . DefaultTimeout ( ) ;
599
648
}
600
649
@@ -614,18 +663,26 @@ public async Task StreamAsyncCore_SendTraceHeader(string protocolName, HttpTrans
614
663
Assert . Equal ( $ "{ hubName } /OnConnectedAsync", a . OperationName ) ;
615
664
Assert . Equal ( "Microsoft.AspNetCore.Hosting.HttpRequestIn" , a . Parent . OperationName ) ;
616
665
Assert . False ( a . HasRemoteParent ) ;
666
+ Assert . Empty ( a . Baggage ) ;
617
667
} ,
618
668
a =>
619
669
{
620
670
Assert . Equal ( $ "{ hubName } /Stream", a . OperationName ) ;
621
- Assert . True ( a . HasRemoteParent ) ;
622
671
Assert . Equal ( clientActivity . Id , a . ParentId ) ;
672
+ Assert . True ( a . HasRemoteParent ) ;
673
+ Assert . Collection ( a . Baggage ,
674
+ b =>
675
+ {
676
+ Assert . Equal ( "baggage-1" , b . Key ) ;
677
+ Assert . Equal ( "value-1" , b . Value ) ;
678
+ } ) ;
623
679
} ,
624
680
a =>
625
681
{
626
682
Assert . Equal ( $ "{ hubName } /OnDisconnectedAsync", a . OperationName ) ;
627
683
Assert . Equal ( "Microsoft.AspNetCore.Hosting.HttpRequestIn" , a . Parent . OperationName ) ;
628
684
Assert . False ( a . HasRemoteParent ) ;
685
+ Assert . Empty ( a . Baggage ) ;
629
686
} ) ;
630
687
}
631
688
}
0 commit comments