@@ -99,6 +99,7 @@ public void ForwardedPortShouldAcceptChannelOpenMessageForBoundAddressAndBoundPo
99
99
var originatorAddress = new Random ( ) . Next ( ) . ToString ( CultureInfo . InvariantCulture ) ;
100
100
var originatorPort = ( uint ) new Random ( ) . Next ( 0 , int . MaxValue ) ;
101
101
var channelMock = new Mock < IChannelForwardedTcpip > ( MockBehavior . Strict ) ;
102
+ var channelDisposed = new ManualResetEvent ( false ) ;
102
103
103
104
_sessionMock . Setup (
104
105
p =>
@@ -110,14 +111,17 @@ public void ForwardedPortShouldAcceptChannelOpenMessageForBoundAddressAndBoundPo
110
111
ep => ep . Address . Equals ( _remoteEndpoint . Address ) && ep . Port == _remoteEndpoint . Port ) ,
111
112
_forwardedPort ) ) ;
112
113
channelMock . Setup ( p => p . Close ( ) ) ;
113
- channelMock . Setup ( p => p . Dispose ( ) ) ;
114
+ channelMock . Setup ( p => p . Dispose ( ) ) . Callback ( ( ) => channelDisposed . Set ( ) ) ;
114
115
115
116
_sessionMock . Raise ( p => p . ChannelOpenReceived += null ,
116
117
new MessageEventArgs < ChannelOpenMessage > ( new ChannelOpenMessage ( channelNumber , initialWindowSize ,
117
118
maximumPacketSize ,
118
119
new ForwardedTcpipChannelInfo ( _forwardedPort . BoundHost , _forwardedPort . BoundPort , originatorAddress ,
119
120
originatorPort ) ) ) ) ;
120
121
122
+ // wait for channel to be disposed
123
+ channelDisposed . WaitOne ( TimeSpan . FromMilliseconds ( 200 ) ) ;
124
+
121
125
_sessionMock . Verify ( p => p . CreateChannelForwardedTcpip ( channelNumber , initialWindowSize , maximumPacketSize ) , Times . Once ) ;
122
126
channelMock . Verify ( p => p . Bind ( It . Is < IPEndPoint > ( ep => ep . Address . Equals ( _remoteEndpoint . Address ) && ep . Port == _remoteEndpoint . Port ) , _forwardedPort ) , Times . Once ) ;
123
127
channelMock . Verify ( p => p . Close ( ) , Times . Once ) ;
0 commit comments