@@ -459,18 +459,43 @@ public async Task CloseConnectionAsync_Specific()
459459 public async Task SendMessageAsync ( )
460460 {
461461 var message = new OperationMessage ( ) ;
462+ _mockConnection . Setup ( x => x . SendMessageAsync ( It . IsAny < OperationMessage > ( ) ) ) . CallBase ( ) . Verifiable ( ) ;
462463 _mockConnection . Protected ( ) . Setup < Task > ( "OnSendMessageAsync" , message )
463464 . Returns ( Task . CompletedTask ) . Verifiable ( ) ;
464465 await _connection . SendMessageAsync ( message ) ;
465466 _mockConnection . Verify ( ) ;
466467 }
467468
469+ [ Fact ]
470+ public async Task MessageCountAsync ( )
471+ {
472+ var tc = new TaskCompletionSource < bool > ( ) ;
473+ var message = new OperationMessage ( ) ;
474+ _mockConnection . Setup ( x => x . SendMessageAsync ( It . IsAny < OperationMessage > ( ) ) ) . CallBase ( ) . Verifiable ( ) ;
475+ _mockConnection . Protected ( ) . Setup < Task > ( "OnSendMessageAsync" , message )
476+ . Returns ( tc . Task ) . Verifiable ( ) ;
477+ await _connection . SendMessageAsync ( message ) ;
478+ _connection . Get_SendQueueCount . ShouldBe ( 1 ) ;
479+ await _connection . SendMessageAsync ( message ) ;
480+ _connection . Get_SendQueueCount . ShouldBe ( 2 ) ;
481+ tc . SetResult ( true ) ;
482+ for ( int i = 0 ; i < 100 ; i ++ ) {
483+ if ( _connection . Get_SendQueueCount != 0 )
484+ await Task . Delay ( 100 ) ;
485+ else
486+ break ;
487+ }
488+ _connection . Get_SendQueueCount . ShouldBe ( 0 ) ;
489+ _mockConnection . Verify ( ) ;
490+ }
491+
468492 [ Fact ]
469493 public async Task LastMessageSentAt ( )
470494 {
471495 var oldTime = _connection . LastMessageSentAt ;
472496 await Task . Delay ( 100 ) ;
473497 var message = new OperationMessage ( ) ;
498+ _mockConnection . Setup ( x => x . SendMessageAsync ( It . IsAny < OperationMessage > ( ) ) ) . CallBase ( ) . Verifiable ( ) ;
474499 _mockConnection . Protected ( ) . Setup < Task > ( "OnSendMessageAsync" , message )
475500 . Returns ( Task . CompletedTask ) . Verifiable ( ) ;
476501 await _connection . SendMessageAsync ( message ) ;
@@ -485,6 +510,7 @@ public async Task DoNotSendMessagesAfterOutputIsClosed()
485510 {
486511 // send a message
487512 var message = new OperationMessage ( ) ;
513+ _mockConnection . Setup ( x => x . SendMessageAsync ( It . IsAny < OperationMessage > ( ) ) ) . CallBase ( ) . Verifiable ( ) ;
488514 _mockConnection . Protected ( ) . SetupGet < TimeSpan > ( "DefaultDisconnectionTimeout" ) . CallBase ( ) . Verifiable ( ) ;
489515 _mockConnection . Protected ( ) . Setup < Task > ( "OnSendMessageAsync" , message )
490516 . Returns ( Task . CompletedTask ) . Verifiable ( ) ;
0 commit comments