From fb9fe50bc031742f37ded3f4ca5f07cab7f0d3e2 Mon Sep 17 00:00:00 2001 From: drieseng Date: Mon, 15 Aug 2016 21:36:37 +0200 Subject: [PATCH] Fixed some tests after recent GlobalRequestMessage changes. --- .../Classes/SessionTest_Connected.cs | 4 +- .../Classes/SessionTest_ConnectedBase.cs | 87 +++++++++++-------- ...alRequestMessageAfterAuthenticationRace.cs | 5 +- ..._Connected_ServerSendsDisconnectMessage.cs | 6 +- ...endsDisconnectMessageAndShutsDownSocket.cs | 8 +- 5 files changed, 62 insertions(+), 48 deletions(-) diff --git a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected.cs b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected.cs index 829bac3d..d46d3798 100644 --- a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected.cs +++ b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected.cs @@ -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); diff --git a/src/Renci.SshNet.Tests/Classes/SessionTest_ConnectedBase.cs b/src/Renci.SshNet.Tests/Classes/SessionTest_ConnectedBase.cs index 9584d0c0..3e836334 100644 --- a/src/Renci.SshNet.Tests/Classes/SessionTest_ConnectedBase.cs +++ b/src/Renci.SshNet.Tests/Classes/SessionTest_ConnectedBase.cs @@ -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(); ServerBytesReceivedRegister = new List(); - _serviceFactoryMock = new Mock(MockBehavior.Strict); - _keyExchangeMock = new Mock(MockBehavior.Strict); - _clientAuthenticationMock = new Mock(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())); - _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(MockBehavior.Strict); + _keyExchangeMock = new Mock(MockBehavior.Strict); + _clientAuthenticationMock = new Mock(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())); + _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(); } diff --git a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_GlobalRequestMessageAfterAuthenticationRace.cs b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_GlobalRequestMessageAfterAuthenticationRace.cs index 47dca9f2..a78154f7 100644 --- a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_GlobalRequestMessageAfterAuthenticationRace.cs +++ b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_GlobalRequestMessageAfterAuthenticationRace.cs @@ -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); } diff --git a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessage.cs b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessage.cs index c47b444e..c13caae4 100644 --- a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessage.cs +++ b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessage.cs @@ -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() diff --git a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessageAndShutsDownSocket.cs b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessageAndShutsDownSocket.cs index f6c9152f..0985794a 100644 --- a/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessageAndShutsDownSocket.cs +++ b/src/Renci.SshNet.Tests/Classes/SessionTest_Connected_ServerSendsDisconnectMessageAndShutsDownSocket.cs @@ -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());