Prechádzať zdrojové kódy

Fixed some tests after recent GlobalRequestMessage changes.

drieseng 9 rokov pred
rodič
commit
fb9fe50bc0

+ 2 - 2
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);

+ 51 - 36
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<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();
         }
 

+ 2 - 3
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);
         }

+ 3 - 3
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()

+ 4 - 4
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());