|
|
@@ -99,6 +99,7 @@ namespace Renci.SshNet.Tests.Classes
|
|
|
var originatorAddress = new Random().Next().ToString(CultureInfo.InvariantCulture);
|
|
|
var originatorPort = (uint) new Random().Next(0, int.MaxValue);
|
|
|
var channelMock = new Mock<IChannelForwardedTcpip>(MockBehavior.Strict);
|
|
|
+ var channelDisposed = new ManualResetEvent(false);
|
|
|
|
|
|
_sessionMock.Setup(
|
|
|
p =>
|
|
|
@@ -110,7 +111,7 @@ namespace Renci.SshNet.Tests.Classes
|
|
|
ep => ep.Address.Equals(_remoteEndpoint.Address) && ep.Port == _remoteEndpoint.Port),
|
|
|
_forwardedPort));
|
|
|
channelMock.Setup(p => p.Close());
|
|
|
- channelMock.Setup(p => p.Dispose());
|
|
|
+ channelMock.Setup(p => p.Dispose()).Callback(() => channelDisposed.Set());
|
|
|
|
|
|
_sessionMock.Raise(p => p.ChannelOpenReceived += null,
|
|
|
new MessageEventArgs<ChannelOpenMessage>(new ChannelOpenMessage(channelNumber, initialWindowSize,
|
|
|
@@ -118,6 +119,9 @@ namespace Renci.SshNet.Tests.Classes
|
|
|
new ForwardedTcpipChannelInfo(_forwardedPort.BoundHost, _forwardedPort.BoundPort, originatorAddress,
|
|
|
originatorPort))));
|
|
|
|
|
|
+ // wait for channel to be disposed
|
|
|
+ channelDisposed.WaitOne(TimeSpan.FromMilliseconds(200));
|
|
|
+
|
|
|
_sessionMock.Verify(p => p.CreateChannelForwardedTcpip(channelNumber, initialWindowSize, maximumPacketSize), Times.Once);
|
|
|
channelMock.Verify(p => p.Bind(It.Is<IPEndPoint>(ep => ep.Address.Equals(_remoteEndpoint.Address) && ep.Port == _remoteEndpoint.Port), _forwardedPort), Times.Once);
|
|
|
channelMock.Verify(p => p.Close(), Times.Once);
|