@@ -466,12 +466,21 @@ public async Task ReloadsOnConfigurationChangeByDefault()
466
466
new KeyValuePair < string , string > ( "Endpoints:B:Url" , "http://*:5001" ) ,
467
467
} ) . Build ( ) ;
468
468
469
- Action changeCallback = null ;
469
+ Func < Task > changeCallback = null ;
470
+ TaskCompletionSource < object > changeCallbackRegisteredTcs = null ;
470
471
471
472
var mockChangeToken = new Mock < IChangeToken > ( ) ;
472
473
mockChangeToken . Setup ( t => t . RegisterChangeCallback ( It . IsAny < Action < object > > ( ) , It . IsAny < object > ( ) ) ) . Returns < Action < object > , object > ( ( callback , state ) =>
473
474
{
474
- changeCallback = ( ) => callback ( state ) ;
475
+ changeCallbackRegisteredTcs ? . SetResult ( null ) ;
476
+
477
+ changeCallback = ( ) =>
478
+ {
479
+ changeCallbackRegisteredTcs = new TaskCompletionSource < object > ( TaskCreationOptions . RunContinuationsAsynchronously ) ;
480
+ callback ( state ) ;
481
+ return changeCallbackRegisteredTcs . Task ;
482
+ } ;
483
+
475
484
return Mock . Of < IDisposable > ( ) ;
476
485
} ) ;
477
486
@@ -505,7 +514,8 @@ public async Task ReloadsOnConfigurationChangeByDefault()
505
514
. Setup ( transport => transport . AcceptAsync ( It . IsAny < CancellationToken > ( ) ) )
506
515
. Returns ( new ValueTask < ConnectionContext > ( result : null ) ) ;
507
516
mockTransport
508
- . Setup ( transport => transport . EndPoint ) . Returns ( e ) ;
517
+ . Setup ( transport => transport . EndPoint )
518
+ . Returns ( e ) ;
509
519
510
520
mockTransports . Add ( mockTransport ) ;
511
521
@@ -536,7 +546,7 @@ public async Task ReloadsOnConfigurationChangeByDefault()
536
546
new KeyValuePair < string , string > ( "Endpoints:C:Url" , "http://*:5003" ) ,
537
547
} ) . Build ( ) ;
538
548
539
- changeCallback ( ) ;
549
+ await changeCallback ( ) . DefaultTimeout ( ) ;
540
550
541
551
mockTransportFactory . Verify ( f => f . BindAsync ( new IPEndPoint ( IPAddress . IPv6Any , 5000 ) , It . IsAny < CancellationToken > ( ) ) , Times . Once ) ;
542
552
mockTransportFactory . Verify ( f => f . BindAsync ( new IPEndPoint ( IPAddress . IPv6Any , 5001 ) , It . IsAny < CancellationToken > ( ) ) , Times . Once ) ;
@@ -564,7 +574,7 @@ public async Task ReloadsOnConfigurationChangeByDefault()
564
574
new KeyValuePair < string , string > ( "Endpoints:C:Url" , "https://*:5003" ) ,
565
575
} ) . Build ( ) ;
566
576
567
- changeCallback ( ) ;
577
+ await changeCallback ( ) . DefaultTimeout ( ) ;
568
578
569
579
mockTransportFactory . Verify ( f => f . BindAsync ( new IPEndPoint ( IPAddress . IPv6Any , 5000 ) , It . IsAny < CancellationToken > ( ) ) , Times . Once ) ;
570
580
mockTransportFactory . Verify ( f => f . BindAsync ( new IPEndPoint ( IPAddress . IPv6Any , 5001 ) , It . IsAny < CancellationToken > ( ) ) , Times . Once ) ;
0 commit comments