Fixed some tests after recent GlobalRequestMessage changes.

This commit is contained in:
drieseng
2016-08-15 21:36:37 +02:00
parent 546caedc94
commit fb9fe50bc0
5 changed files with 62 additions and 48 deletions
@@ -10,9 +10,9 @@ namespace Renci.SshNet.Tests.Classes
{
private IgnoreMessage _ignoreMessage;
protected override void Arrange()
protected override void SetupData()
{
base.Arrange();
base.SetupData();
var data = new byte[10];
Random.NextBytes(data);
@@ -58,7 +58,7 @@ namespace Renci.SshNet.Tests.Classes
}
}
protected virtual void Arrange()
protected virtual void SetupData()
{
Random = new Random();
@@ -67,8 +67,8 @@ namespace Renci.SshNet.Tests.Classes
_serverEndPoint.Address.ToString(),
_serverEndPoint.Port,
"user",
new PasswordAuthenticationMethod("user", "password"));
ConnectionInfo.Timeout = TimeSpan.FromSeconds(20);
new PasswordAuthenticationMethod("user", "password"))
{Timeout = TimeSpan.FromSeconds(20)};
_keyExchangeAlgorithm = Random.Next().ToString(CultureInfo.InvariantCulture);
SessionId = new byte[10];
Random.NextBytes(SessionId);
@@ -77,10 +77,6 @@ namespace Renci.SshNet.Tests.Classes
ErrorOccurredRegister = new List<ExceptionEventArgs>();
ServerBytesReceivedRegister = new List<byte[]>();
_serviceFactoryMock = new Mock<IServiceFactory>(MockBehavior.Strict);
_keyExchangeMock = new Mock<IKeyExchange>(MockBehavior.Strict);
_clientAuthenticationMock = new Mock<IClientAuthentication>(MockBehavior.Strict);
Session = new Session(ConnectionInfo, _serviceFactoryMock.Object);
Session.Disconnected += (sender, args) => DisconnectedRegister.Add(args);
Session.DisconnectReceived += (sender, args) => DisconnectReceivedRegister.Add(args);
@@ -92,22 +88,6 @@ namespace Renci.SshNet.Tests.Classes
ServerSocket.Send(newKeys, 4, newKeys.Length - 4, SocketFlags.None);
};
_serviceFactoryMock.Setup(
p =>
p.CreateKeyExchange(ConnectionInfo.KeyExchangeAlgorithms, new[] {_keyExchangeAlgorithm})).Returns(_keyExchangeMock.Object);
_keyExchangeMock.Setup(p => p.Name).Returns(_keyExchangeAlgorithm);
_keyExchangeMock.Setup(p => p.Start(Session, It.IsAny<KeyExchangeInitMessage>()));
_keyExchangeMock.Setup(p => p.ExchangeHash).Returns(SessionId);
_keyExchangeMock.Setup(p => p.CreateServerCipher()).Returns((Cipher) null);
_keyExchangeMock.Setup(p => p.CreateClientCipher()).Returns((Cipher) null);
_keyExchangeMock.Setup(p => p.CreateServerHash()).Returns((HashAlgorithm) null);
_keyExchangeMock.Setup(p => p.CreateClientHash()).Returns((HashAlgorithm) null);
_keyExchangeMock.Setup(p => p.CreateCompressor()).Returns((Compressor) null);
_keyExchangeMock.Setup(p => p.CreateDecompressor()).Returns((Compressor) null);
_keyExchangeMock.Setup(p => p.Dispose());
_serviceFactoryMock.Setup(p => p.CreateClientAuthentication()).Callback(ClientAuthentication_Callback).Returns(_clientAuthenticationMock.Object);
_clientAuthenticationMock.Setup(p => p.Authenticate(ConnectionInfo, Session));
ServerListener = new AsyncSocketListener(_serverEndPoint);
ServerListener.Connected += socket =>
{
@@ -128,18 +108,18 @@ namespace Renci.SshNet.Tests.Classes
{
case 0:
var keyExchangeInitMessage = new KeyExchangeInitMessage
{
CompressionAlgorithmsClientToServer = new string[0],
CompressionAlgorithmsServerToClient = new string[0],
EncryptionAlgorithmsClientToServer = new string[0],
EncryptionAlgorithmsServerToClient = new string[0],
KeyExchangeAlgorithms = new[] {_keyExchangeAlgorithm},
LanguagesClientToServer = new string[0],
LanguagesServerToClient = new string[0],
MacAlgorithmsClientToServer = new string[0],
MacAlgorithmsServerToClient = new string[0],
ServerHostKeyAlgorithms = new string[0]
};
{
CompressionAlgorithmsClientToServer = new string[0],
CompressionAlgorithmsServerToClient = new string[0],
EncryptionAlgorithmsClientToServer = new string[0],
EncryptionAlgorithmsServerToClient = new string[0],
KeyExchangeAlgorithms = new[] {_keyExchangeAlgorithm},
LanguagesClientToServer = new string[0],
LanguagesServerToClient = new string[0],
MacAlgorithmsClientToServer = new string[0],
MacAlgorithmsServerToClient = new string[0],
ServerHostKeyAlgorithms = new string[0]
};
var keyExchangeInit = keyExchangeInitMessage.GetPacket(8, null);
ServerSocket.Send(keyExchangeInit, 4, keyExchangeInit.Length - 4, SocketFlags.None);
break;
@@ -151,8 +131,43 @@ namespace Renci.SshNet.Tests.Classes
break;
}
};
ServerListener.Start();
}
private void CreateMocks()
{
_serviceFactoryMock = new Mock<IServiceFactory>(MockBehavior.Strict);
_keyExchangeMock = new Mock<IKeyExchange>(MockBehavior.Strict);
_clientAuthenticationMock = new Mock<IClientAuthentication>(MockBehavior.Strict);
}
private void SetupMocks()
{
_serviceFactoryMock.Setup(
p =>
p.CreateKeyExchange(ConnectionInfo.KeyExchangeAlgorithms, new[] { _keyExchangeAlgorithm })).Returns(_keyExchangeMock.Object);
_keyExchangeMock.Setup(p => p.Name).Returns(_keyExchangeAlgorithm);
_keyExchangeMock.Setup(p => p.Start(Session, It.IsAny<KeyExchangeInitMessage>()));
_keyExchangeMock.Setup(p => p.ExchangeHash).Returns(SessionId);
_keyExchangeMock.Setup(p => p.CreateServerCipher()).Returns((Cipher) null);
_keyExchangeMock.Setup(p => p.CreateClientCipher()).Returns((Cipher) null);
_keyExchangeMock.Setup(p => p.CreateServerHash()).Returns((HashAlgorithm) null);
_keyExchangeMock.Setup(p => p.CreateClientHash()).Returns((HashAlgorithm) null);
_keyExchangeMock.Setup(p => p.CreateCompressor()).Returns((Compressor) null);
_keyExchangeMock.Setup(p => p.CreateDecompressor()).Returns((Compressor) null);
_keyExchangeMock.Setup(p => p.Dispose());
_serviceFactoryMock.Setup(p => p.CreateClientAuthentication())
.Callback(ClientAuthentication_Callback)
.Returns(_clientAuthenticationMock.Object);
_clientAuthenticationMock.Setup(p => p.Authenticate(ConnectionInfo, Session));
}
protected virtual void Arrange()
{
CreateMocks();
SetupData();
SetupMocks();
ServerListener.Start();
Session.Connect();
}
@@ -13,9 +13,9 @@ namespace Renci.SshNet.Tests.Classes
{
private GlobalRequestMessage _globalRequestMessage;
protected override void Arrange()
protected override void SetupData()
{
base.Arrange();
base.SetupData();
_globalRequestMessage = new GlobalRequestMessage(Encoding.ASCII.GetBytes("ping-mocana-com"), false);
}
@@ -26,7 +26,6 @@ namespace Renci.SshNet.Tests.Classes
protected override void ClientAuthentication_Callback()
{
var globalRequest = _globalRequestMessage.GetPacket(8, null);
ServerSocket.Send(globalRequest, 4, globalRequest.Length - 4, SocketFlags.None);
}
@@ -13,11 +13,11 @@ namespace Renci.SshNet.Tests.Classes
{
private DisconnectMessage _disconnectMessage;
protected override void Arrange()
protected override void SetupData()
{
_disconnectMessage = new DisconnectMessage(DisconnectReason.ServiceNotAvailable, "Not today!");
base.SetupData();
base.Arrange();
_disconnectMessage = new DisconnectMessage(DisconnectReason.ServiceNotAvailable, "Not today!");
}
protected override void Act()
@@ -13,11 +13,11 @@ namespace Renci.SshNet.Tests.Classes
{
private DisconnectMessage _disconnectMessage;
protected override void Arrange()
protected override void SetupData()
{
_disconnectMessage = new DisconnectMessage(DisconnectReason.ServiceNotAvailable, "Not today!");
base.SetupData();
base.Arrange();
_disconnectMessage = new DisconnectMessage(DisconnectReason.ServiceNotAvailable, "Not today!");
}
protected override void Act()
@@ -116,7 +116,7 @@ namespace Renci.SshNet.Tests.Classes
[TestMethod]
public void ISession_MessageListenerCompletedShouldBeSignaled()
{
var session = (ISession)Session;
var session = (ISession) Session;
Assert.IsNotNull(session.MessageListenerCompleted);
Assert.IsTrue(session.MessageListenerCompleted.WaitOne());