|
|
@@ -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();
|
|
|
}
|
|
|
|