2
0
Эх сурвалжийг харах

Restracture test case classes

olegkap_cp 13 жил өмнө
parent
commit
485c36d70c
100 өөрчлөгдсөн 2471 нэмэгдсэн , 53 устгасан
  1. 13 0
      Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/ForwardedPortLocal.NET35.cs
  2. 13 0
      Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/ForwardedPortRemote.NET35.cs
  3. 13 0
      Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/SshCommandTest.NET35.cs
  4. 18 0
      Renci.SshClient/Renci.SshNet.Tests.NET35/Properties/Resources.Designer.cs
  5. 8 2
      Renci.SshClient/Renci.SshNet.Tests.NET35/Properties/Resources.resx
  6. 596 51
      Renci.SshClient/Renci.SshNet.Tests.NET35/Renci.SshNet.Tests.NET35.csproj
  7. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ChannelAsyncResultTest.cs
  8. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelDirectTcpipTest.cs
  9. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelForwardedTcpipTest.cs
  10. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelSessionTest.cs
  11. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/CipherInfoTest.cs
  12. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ASCIIEncodingTest.cs
  13. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationBannerEventArgsTest.cs
  14. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPasswordChangeEventArgsTest.cs
  15. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPromptEventArgsTest.cs
  16. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPromptTest.cs
  17. 70 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/BigIntegerTest.cs
  18. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelDataEventArgsTest.cs
  19. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelEventArgsTest.cs
  20. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelOpenFailedEventArgsTest.cs
  21. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelRequestEventArgsTest.cs
  22. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/DerDataTest.cs
  23. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ExceptionEventArgsTest.cs
  24. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs
  25. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/NetConfServerExceptionTest.cs
  26. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ObjectIdentifierTest.cs
  27. 59 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/PipeStreamTest.cs
  28. 31 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/PortForwardEventArgsTest.cs
  29. 8 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ProxyExceptionTest.NET40.cs
  30. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ProxyExceptionTest.cs
  31. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpDownloadEventArgsTest.cs
  32. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpExceptionTest.cs
  33. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpUploadEventArgsTest.cs
  34. 75 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SemaphoreLightTest.cs
  35. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SftpPathNotFoundExceptionTest.cs
  36. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SftpPermissionDeniedExceptionTest.cs
  37. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ShellDataEventArgsTest.cs
  38. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshAuthenticationExceptionTest.cs
  39. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshConnectionExceptionTest.cs
  40. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshExceptionTest.cs
  41. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshOperationTimeoutExceptionTest.cs
  42. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshPassPhraseNullOrEmptyExceptionTest.cs
  43. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibOpenSshTest.cs
  44. 29 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibStreamTest.cs
  45. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibTest.cs
  46. 112 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ConnectionInfoTest.cs
  47. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ExpectActionTest.cs
  48. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortDynamicTest.cs
  49. 106 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortLocalTest.NET40.cs
  50. 106 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortLocalTest.cs
  51. 55 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortRemote.NET40.cs
  52. 43 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortRemoteTest.cs
  53. 33 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/KeyboardInteractiveAuthenticationMethodTest.cs
  54. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/KeyboardInteractiveConnectionInfoTest.cs
  55. 14 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/MessageEventArgsTest.cs
  56. 20 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/BannerMessageTest.cs
  57. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/FailureMessageTest.cs
  58. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/InformationRequestMessageTest.cs
  59. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/InformationResponseMessageTest.cs
  60. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/PasswordChangeRequiredMessageTest.cs
  61. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/PublicKeyMessageTest.cs
  62. 11 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageHostTest.cs
  63. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageKeyboardInteractiveTest.cs
  64. 11 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageNoneTest.cs
  65. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessagePasswordTest.cs
  66. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessagePublicKeyTest.cs
  67. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageTest.cs
  68. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/SuccessMessageTest.cs
  69. 26 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelCloseMessageTest.cs
  70. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelDataMessageTest.cs
  71. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelEofMessageTest.cs
  72. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelExtendedDataMessageTest.cs
  73. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelFailureMessageTest.cs
  74. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/ChannelOpenMessageTest.cs
  75. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/DirectTcpipChannelInfoTest.cs
  76. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/ForwardedTcpipChannelInfoTest.cs
  77. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/SessionChannelOpenInfoTest.cs
  78. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/X11ChannelOpenInfoTest.cs
  79. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpenConfirmationMessageTest.cs
  80. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpenFailureMessageTest.cs
  81. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/BreakRequestInfoTest.cs
  82. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ChannelRequestMessageTest.cs
  83. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/EndOfWriteRequestInfoTest.cs
  84. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/EnvironmentVariableRequestInfoTest.cs
  85. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExecRequestInfoTest.cs
  86. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExitSignalRequestInfoTest.cs
  87. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExitStatusRequestInfoTest.cs
  88. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/KeepAliveRequestInfoTest.cs
  89. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/PseudoTerminalInfoTest.cs
  90. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ShellRequestInfoTest.cs
  91. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/SignalRequestInfoTest.cs
  92. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/SubsystemRequestInfoTest.cs
  93. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/WindowChangeRequestInfoTest.cs
  94. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/X11ForwardingRequestInfoTest.cs
  95. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/XonXoffRequestInfoTest.cs
  96. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelSuccessMessageTest.cs
  97. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelWindowAdjustMessageTest.cs
  98. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/GlobalRequestMessageTest.cs
  99. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/RequestFailureMessageTest.cs
  100. 13 0
      Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/RequestSuccessMessageTest.cs

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/ForwardedPortLocal.NET35.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.SshClientTests
+{
+    public partial class ForwardedPortLocalTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/ForwardedPortRemote.NET35.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.SshClientTests
+{
+    public partial class ForwardedPortRemoteTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests.NET35/Classes/SshCommandTest.NET35.cs

@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.SshClientTests
+{
+    public partial class SshCommandTest : TestBase
+    {
+    }
+}

+ 18 - 0
Renci.SshClient/Renci.SshNet.Tests.NET35/Properties/Resources.Designer.cs

@@ -140,6 +140,24 @@ namespace Renci.SshNet.Tests.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to proxy.oleg-centos.edc.renci.org.
+        /// </summary>
+        internal static string PROXY_HOST {
+            get {
+                return ResourceManager.GetString("PROXY_HOST", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to 8123.
+        /// </summary>
+        internal static string PROXY_PORT {
+            get {
+                return ResourceManager.GetString("PROXY_PORT", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to -----BEGIN RSA PRIVATE KEY-----
         ///Proc-Type: 4,ENCRYPTED

+ 8 - 2
Renci.SshClient/Renci.SshNet.Tests.NET35/Properties/Resources.resx

@@ -112,10 +112,10 @@
     <value>2.0</value>
   </resheader>
   <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <data name="DSA_KEY_WITHOUT_PASS" xml:space="preserve">
     <value>-----BEGIN DSA PRIVATE KEY-----
@@ -171,6 +171,12 @@ tM7dZpB+reWl9L5e2L8=
   <data name="PORT" xml:space="preserve">
     <value>22</value>
   </data>
+  <data name="PROXY_HOST" xml:space="preserve">
+    <value>proxy.oleg-centos.edc.renci.org</value>
+  </data>
+  <data name="PROXY_PORT" xml:space="preserve">
+    <value>8123</value>
+  </data>
   <data name="RSA_KEY_WITHOUT_PASS" xml:space="preserve">
     <value>-----BEGIN RSA PRIVATE KEY-----
 MIIEogIBAAKCAQEA8ZsD8jgH7ySXnd4dprEFFkJ+zs1ne81E8febjR8hekiKrc+D

+ 596 - 51
Renci.SshClient/Renci.SshNet.Tests.NET35/Renci.SshNet.Tests.NET35.csproj

@@ -15,10 +15,6 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <TargetFrameworkProfile />
-    <SccProjectName>SAK</SccProjectName>
-    <SccLocalPath>SAK</SccLocalPath>
-    <SccAuxPath>SAK</SccAuxPath>
-    <SccProvider>SAK</SccProvider>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -50,80 +46,627 @@
     </CodeAnalysisDependentAssemblyPaths>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="..\Renci.SshNet.Tests\ConnectionTest.cs">
-      <Link>ConnectionTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ChannelAsyncResultTest.cs">
+      <Link>Classes\ChannelAsyncResultTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\ScpClientTests\UploadDownloadTest.cs">
-      <Link>ScpClientTests\UploadDownloadTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Channels\ChannelDirectTcpipTest.cs">
+      <Link>Classes\Channels\ChannelDirectTcpipTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\Cryptography\Ciphers.cs">
-      <Link>Security\Cryptography\Ciphers.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Channels\ChannelForwardedTcpipTest.cs">
+      <Link>Classes\Channels\ChannelForwardedTcpipTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\TestCipher.cs">
-      <Link>Security\TestCipher.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Channels\ChannelSessionTest.cs">
+      <Link>Classes\Channels\ChannelSessionTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\TestHMac.cs">
-      <Link>Security\TestHMac.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\CipherInfoTest.cs">
+      <Link>Classes\CipherInfoTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\TestHostKey.cs">
-      <Link>Security\TestHostKey.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ASCIIEncodingTest.cs">
+      <Link>Classes\Common\ASCIIEncodingTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\TestKeyExchange.cs">
-      <Link>Security\TestKeyExchange.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\AuthenticationBannerEventArgsTest.cs">
+      <Link>Classes\Common\AuthenticationBannerEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\Security\TestPrivateKeyFile.cs">
-      <Link>Security\TestPrivateKeyFile.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\AuthenticationPasswordChangeEventArgsTest.cs">
+      <Link>Classes\Common\AuthenticationPasswordChangeEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\ChangeDirectory.cs">
-      <Link>SftpClientTests\ChangeDirectory.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\AuthenticationPromptEventArgsTest.cs">
+      <Link>Classes\Common\AuthenticationPromptEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\CreateDirectoryTest.cs">
-      <Link>SftpClientTests\CreateDirectoryTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\AuthenticationPromptTest.cs">
+      <Link>Classes\Common\AuthenticationPromptTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\DeleteDirectoryTest.cs">
-      <Link>SftpClientTests\DeleteDirectoryTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\BigIntegerTest.cs">
+      <Link>Classes\Common\BigIntegerTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\DeleteFileTest.cs">
-      <Link>SftpClientTests\DeleteFileTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ChannelDataEventArgsTest.cs">
+      <Link>Classes\Common\ChannelDataEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\GetTest.cs">
-      <Link>SftpClientTests\GetTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ChannelEventArgsTest.cs">
+      <Link>Classes\Common\ChannelEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\ListDirectoryTest.cs">
-      <Link>SftpClientTests\ListDirectoryTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ChannelOpenFailedEventArgsTest.cs">
+      <Link>Classes\Common\ChannelOpenFailedEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\RenameFileTest.cs">
-      <Link>SftpClientTests\RenameFileTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ChannelRequestEventArgsTest.cs">
+      <Link>Classes\Common\ChannelRequestEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\SftpFileStreamTest.cs">
-      <Link>SftpClientTests\SftpFileStreamTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\DerDataTest.cs">
+      <Link>Classes\Common\DerDataTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\SftpFileTest.cs">
-      <Link>SftpClientTests\SftpFileTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ExceptionEventArgsTest.cs">
+      <Link>Classes\Common\ExceptionEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\SynchronizeDirectoriesTest.cs">
-      <Link>SftpClientTests\SynchronizeDirectoriesTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\HostKeyEventArgsTest.cs">
+      <Link>Classes\Common\HostKeyEventArgsTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SftpClientTests\UploadDownloadFileTest.cs">
-      <Link>SftpClientTests\UploadDownloadFileTest.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\NetConfServerExceptionTest.cs">
+      <Link>Classes\Common\NetConfServerExceptionTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SshClientTests\TestPortForwarding.cs">
-      <Link>SshClientTests\TestPortForwarding.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ObjectIdentifierTest.cs">
+      <Link>Classes\Common\ObjectIdentifierTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SshClientTests\TestShell.cs">
-      <Link>SshClientTests\TestShell.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\PipeStreamTest.cs">
+      <Link>Classes\Common\PipeStreamTest.cs</Link>
     </Compile>
-    <Compile Include="..\Renci.SshNet.Tests\SshClientTests\TestSshCommand.cs">
-      <Link>SshClientTests\TestSshCommand.cs</Link>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\PortForwardEventArgsTest.cs">
+      <Link>Classes\Common\PortForwardEventArgsTest.cs</Link>
     </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ProxyExceptionTest.cs">
+      <Link>Classes\Common\ProxyExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ProxyExceptionTest.NET40.cs">
+      <Link>Classes\Common\ProxyExceptionTest.NET40.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ScpDownloadEventArgsTest.cs">
+      <Link>Classes\Common\ScpDownloadEventArgsTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ScpExceptionTest.cs">
+      <Link>Classes\Common\ScpExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ScpUploadEventArgsTest.cs">
+      <Link>Classes\Common\ScpUploadEventArgsTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SemaphoreLightTest.cs">
+      <Link>Classes\Common\SemaphoreLightTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SftpPathNotFoundExceptionTest.cs">
+      <Link>Classes\Common\SftpPathNotFoundExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SftpPermissionDeniedExceptionTest.cs">
+      <Link>Classes\Common\SftpPermissionDeniedExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\ShellDataEventArgsTest.cs">
+      <Link>Classes\Common\ShellDataEventArgsTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SshAuthenticationExceptionTest.cs">
+      <Link>Classes\Common\SshAuthenticationExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SshConnectionExceptionTest.cs">
+      <Link>Classes\Common\SshConnectionExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SshExceptionTest.cs">
+      <Link>Classes\Common\SshExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SshOperationTimeoutExceptionTest.cs">
+      <Link>Classes\Common\SshOperationTimeoutExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Common\SshPassPhraseNullOrEmptyExceptionTest.cs">
+      <Link>Classes\Common\SshPassPhraseNullOrEmptyExceptionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Compression\ZlibOpenSshTest.cs">
+      <Link>Classes\Compression\ZlibOpenSshTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Compression\ZlibStreamTest.cs">
+      <Link>Classes\Compression\ZlibStreamTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Compression\ZlibTest.cs">
+      <Link>Classes\Compression\ZlibTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ConnectionInfoTest.cs">
+      <Link>Classes\ConnectionInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ExpectActionTest.cs">
+      <Link>Classes\ExpectActionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ForwardedPortDynamicTest.cs">
+      <Link>Classes\ForwardedPortDynamicTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ForwardedPortLocalTest.cs">
+      <Link>Classes\ForwardedPortLocalTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ForwardedPortRemoteTest.cs">
+      <Link>Classes\ForwardedPortRemoteTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\KeyboardInteractiveAuthenticationMethodTest.cs">
+      <Link>Classes\KeyboardInteractiveAuthenticationMethodTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\KeyboardInteractiveConnectionInfoTest.cs">
+      <Link>Classes\KeyboardInteractiveConnectionInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\MessageEventArgsTest.cs">
+      <Link>Classes\MessageEventArgsTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\BannerMessageTest.cs">
+      <Link>Classes\Messages\Authentication\BannerMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\FailureMessageTest.cs">
+      <Link>Classes\Messages\Authentication\FailureMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\InformationRequestMessageTest.cs">
+      <Link>Classes\Messages\Authentication\InformationRequestMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\InformationResponseMessageTest.cs">
+      <Link>Classes\Messages\Authentication\InformationResponseMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\PasswordChangeRequiredMessageTest.cs">
+      <Link>Classes\Messages\Authentication\PasswordChangeRequiredMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\PublicKeyMessageTest.cs">
+      <Link>Classes\Messages\Authentication\PublicKeyMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessageHostTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessageHostTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessageKeyboardInteractiveTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessageKeyboardInteractiveTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessageNoneTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessageNoneTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessagePasswordTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessagePasswordTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessagePublicKeyTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessagePublicKeyTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\RequestMessageTest.cs">
+      <Link>Classes\Messages\Authentication\RequestMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Authentication\SuccessMessageTest.cs">
+      <Link>Classes\Messages\Authentication\SuccessMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelCloseMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelCloseMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelDataMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelDataMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelEofMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelEofMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelExtendedDataMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelExtendedDataMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelFailureMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelFailureMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpenConfirmationMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpenConfirmationMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpenFailureMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpenFailureMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpen\ChannelOpenMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpen\ChannelOpenMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpen\DirectTcpipChannelInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpen\DirectTcpipChannelInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpen\ForwardedTcpipChannelInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpen\ForwardedTcpipChannelInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpen\SessionChannelOpenInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpen\SessionChannelOpenInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelOpen\X11ChannelOpenInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelOpen\X11ChannelOpenInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\BreakRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\BreakRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\ChannelRequestMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\ChannelRequestMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\EndOfWriteRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\EndOfWriteRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\EnvironmentVariableRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\EnvironmentVariableRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\ExecRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\ExecRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\ExitSignalRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\ExitSignalRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\ExitStatusRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\ExitStatusRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\KeepAliveRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\KeepAliveRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\PseudoTerminalInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\PseudoTerminalInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\ShellRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\ShellRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\SignalRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\SignalRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\SubsystemRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\SubsystemRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\WindowChangeRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\WindowChangeRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\X11ForwardingRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\X11ForwardingRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelRequest\XonXoffRequestInfoTest.cs">
+      <Link>Classes\Messages\Connection\ChannelRequest\XonXoffRequestInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelSuccessMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelSuccessMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\ChannelWindowAdjustMessageTest.cs">
+      <Link>Classes\Messages\Connection\ChannelWindowAdjustMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\GlobalRequestMessageTest.cs">
+      <Link>Classes\Messages\Connection\GlobalRequestMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\RequestFailureMessageTest.cs">
+      <Link>Classes\Messages\Connection\RequestFailureMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Connection\RequestSuccessMessageTest.cs">
+      <Link>Classes\Messages\Connection\RequestSuccessMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\DebugMessageTest.cs">
+      <Link>Classes\Messages\Transport\DebugMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\DisconnectMessageTest.cs">
+      <Link>Classes\Messages\Transport\DisconnectMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\IgnoreMessageTest.cs">
+      <Link>Classes\Messages\Transport\IgnoreMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhGroupExchangeGroupTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhGroupExchangeGroupTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhGroupExchangeInitTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhGroupExchangeInitTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhGroupExchangeReplyTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhGroupExchangeReplyTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhGroupExchangeRequestTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhGroupExchangeRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhInitMessageTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhInitMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeDhReplyMessageTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeDhReplyMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\KeyExchangeInitMessageTest.cs">
+      <Link>Classes\Messages\Transport\KeyExchangeInitMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\NewKeysMessageTest.cs">
+      <Link>Classes\Messages\Transport\NewKeysMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\ServiceAcceptMessageTest.cs">
+      <Link>Classes\Messages\Transport\ServiceAcceptMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\ServiceRequestMessageTest.cs">
+      <Link>Classes\Messages\Transport\ServiceRequestMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Messages\Transport\UnimplementedMessageTest.cs">
+      <Link>Classes\Messages\Transport\UnimplementedMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\NetConfClientTest.cs">
+      <Link>Classes\NetConfClientTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Netconf\NetConfSessionTest.cs">
+      <Link>Classes\Netconf\NetConfSessionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\NoneAuthenticationMethodTest.cs">
+      <Link>Classes\NoneAuthenticationMethodTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\PasswordAuthenticationMethodTest.cs">
+      <Link>Classes\PasswordAuthenticationMethodTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\PasswordConnectionInfoTest.cs">
+      <Link>Classes\PasswordConnectionInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\PrivateKeyAuthenticationMethodTest.cs">
+      <Link>Classes\PrivateKeyAuthenticationMethodTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\PrivateKeyConnectionInfoTest.cs">
+      <Link>Classes\PrivateKeyConnectionInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\PrivateKeyFileTest.cs">
+      <Link>Classes\PrivateKeyFileTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ScpClientTest.cs">
+      <Link>Classes\ScpClientTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\CertificateHostAlgorithmTest.cs">
+      <Link>Classes\Security\CertificateHostAlgorithmTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\AesCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\AesCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Arc4CipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Arc4CipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\BlowfishCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\BlowfishCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\CastCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\CastCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\DesCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\DesCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Modes\CbcCipherModeTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Modes\CbcCipherModeTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Modes\CfbCipherModeTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Modes\CfbCipherModeTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Modes\CtrCipherModeTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Modes\CtrCipherModeTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Modes\OfbCipherModeTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Modes\OfbCipherModeTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Paddings\PKCS5PaddingTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Paddings\PKCS5PaddingTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\Paddings\PKCS7PaddingTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\Paddings\PKCS7PaddingTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\RsaCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\RsaCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\SerpentCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\SerpentCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\TripleDesCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\TripleDesCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Ciphers\TwofishCipherTest.cs">
+      <Link>Classes\Security\Cryptography\Ciphers\TwofishCipherTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\DsaDigitalSignatureTest.cs">
+      <Link>Classes\Security\Cryptography\DsaDigitalSignatureTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\DsaKeyTest.cs">
+      <Link>Classes\Security\Cryptography\DsaKeyTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Hashes\MD5HashTest.cs">
+      <Link>Classes\Security\Cryptography\Hashes\MD5HashTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Hashes\SHA1HashTest.cs">
+      <Link>Classes\Security\Cryptography\Hashes\SHA1HashTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\Hashes\SHA256HashTest.cs">
+      <Link>Classes\Security\Cryptography\Hashes\SHA256HashTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\HMacTest.cs">
+      <Link>Classes\Security\Cryptography\HMacTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\RsaDigitalSignatureTest.cs">
+      <Link>Classes\Security\Cryptography\RsaDigitalSignatureTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\Cryptography\RsaKeyTest.cs">
+      <Link>Classes\Security\Cryptography\RsaKeyTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\KeyExchangeDiffieHellmanGroup14Sha1Test.cs">
+      <Link>Classes\Security\KeyExchangeDiffieHellmanGroup14Sha1Test.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\KeyExchangeDiffieHellmanGroup1Sha1Test.cs">
+      <Link>Classes\Security\KeyExchangeDiffieHellmanGroup1Sha1Test.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha1Test.cs">
+      <Link>Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha1Test.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha256Test.cs">
+      <Link>Classes\Security\KeyExchangeDiffieHellmanGroupExchangeSha256Test.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Security\KeyHostAlgorithmTest.cs">
+      <Link>Classes\Security\KeyHostAlgorithmTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SessionTest.cs">
+      <Link>Classes\SessionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.ChangeDirectory.cs">
+      <Link>Classes\SftpClientTest.ChangeDirectory.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.CreateDirectory.cs">
+      <Link>Classes\SftpClientTest.CreateDirectory.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.cs">
+      <Link>Classes\SftpClientTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.DeleteDirectory.cs">
+      <Link>Classes\SftpClientTest.DeleteDirectory.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.DeleteFile.cs">
+      <Link>Classes\SftpClientTest.DeleteFile.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.Download.cs">
+      <Link>Classes\SftpClientTest.Download.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.ListDirectory.cs">
+      <Link>Classes\SftpClientTest.ListDirectory.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.RenameFile.cs">
+      <Link>Classes\SftpClientTest.RenameFile.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.SynchronizeDirectories.cs">
+      <Link>Classes\SftpClientTest.SynchronizeDirectories.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SftpClientTest.Upload.cs">
+      <Link>Classes\SftpClientTest.Upload.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\ExtendedRequests\FStatVfsRequestTest.cs">
+      <Link>Classes\Sftp\Requests\ExtendedRequests\FStatVfsRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\ExtendedRequests\HardLinkRequestTest.cs">
+      <Link>Classes\Sftp\Requests\ExtendedRequests\HardLinkRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\ExtendedRequests\PosixRenameRequestTest.cs">
+      <Link>Classes\Sftp\Requests\ExtendedRequests\PosixRenameRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\ExtendedRequests\StatVfsRequestTest.cs">
+      <Link>Classes\Sftp\Requests\ExtendedRequests\StatVfsRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpBlockRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpBlockRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpCloseRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpCloseRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpFSetStatRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpFSetStatRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpFStatRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpFStatRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpInitRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpInitRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpLinkRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpLinkRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpLStatRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpLStatRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpMkDirRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpMkDirRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpOpenDirRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpOpenDirRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpOpenRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpOpenRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpReadDirRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpReadDirRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpReadLinkRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpReadLinkRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpReadRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpReadRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpRealPathRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpRealPathRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpRemoveRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpRemoveRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpRenameRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpRenameRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpRmDirRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpRmDirRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpSetStatRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpSetStatRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpStatRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpStatRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpSymLinkRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpSymLinkRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpUnblockRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpUnblockRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Requests\SftpWriteRequestTest.cs">
+      <Link>Classes\Sftp\Requests\SftpWriteRequestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\ExtendedReplies\StatVfsReplyInfoTest.cs">
+      <Link>Classes\Sftp\Responses\ExtendedReplies\StatVfsReplyInfoTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpAttrsResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpAttrsResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpDataResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpDataResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpExtendedReplyResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpExtendedReplyResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpHandleResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpHandleResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpNameResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpNameResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpStatusResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpStatusResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\Responses\SftpVersionResponseTest.cs">
+      <Link>Classes\Sftp\Responses\SftpVersionResponseTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpDataMessageTest.cs">
+      <Link>Classes\Sftp\SftpDataMessageTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpDownloadAsyncResultTest.cs">
+      <Link>Classes\Sftp\SftpDownloadAsyncResultTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileAttributesTest.cs">
+      <Link>Classes\Sftp\SftpFileAttributesTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileStreamTest.cs">
+      <Link>Classes\Sftp\SftpFileStreamTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileSystemInformationTest.cs">
+      <Link>Classes\Sftp\SftpFileSystemInformationTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpFileTest.cs">
+      <Link>Classes\Sftp\SftpFileTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpListDirectoryAsyncResultTest.cs">
+      <Link>Classes\Sftp\SftpListDirectoryAsyncResultTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpSessionTest.cs">
+      <Link>Classes\Sftp\SftpSessionTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpSynchronizeDirectoriesAsyncResultTest.cs">
+      <Link>Classes\Sftp\SftpSynchronizeDirectoriesAsyncResultTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\Sftp\SftpUploadAsyncResultTest.cs">
+      <Link>Classes\Sftp\SftpUploadAsyncResultTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ShellStream.cs">
+      <Link>Classes\ShellStream.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\ShellTestTest.cs">
+      <Link>Classes\ShellTestTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SshClientTest.cs">
+      <Link>Classes\SshClientTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Classes\SshCommandTest.cs">
+      <Link>Classes\SshCommandTest.cs</Link>
+    </Compile>
+    <Compile Include="..\Renci.SshNet.Tests\Common\TestBase.cs">
+      <Link>Common\TestBase.cs</Link>
+    </Compile>
+    <Compile Include="Classes\ForwardedPortRemote.NET35.cs" />
+    <Compile Include="Classes\ForwardedPortLocal.NET35.cs" />
+    <Compile Include="Classes\SshCommandTest.NET35.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Properties\Resources.Designer.cs">
       <AutoGen>True</AutoGen>
       <DesignTime>True</DesignTime>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
-    <Compile Include="SshClientTests\TestPortForwarding.NET35.cs" />
-    <Compile Include="SshClientTests\TestSshCommand.NET35.cs" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\Renci.SshNet.NET35\Renci.SshNet.NET35.csproj">
@@ -135,12 +678,14 @@
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
     </EmbeddedResource>
   </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ProjectExtensions>
     <VisualStudio>
-      <UserProperties ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" ProjectLinkReference="c45379b9-17b1-4e89-bc2e-6d41726413e8" />
+      <UserProperties ProjectLinkReference="c45379b9-17b1-4e89-bc2e-6d41726413e8" ProjectLinkerExcludeFilter="\\?desktop(\\.*)?$;\\?silverlight(\\.*)?$;\.desktop;\.silverlight;\.xaml;^service references(\\.*)?$;\.clientconfig;^web references(\\.*)?$" />
     </VisualStudio>
   </ProjectExtensions>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ChannelAsyncResultTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classeslasses
+{
+    /// <summary>
+    /// Provides additional information for asynchronous command execution
+    /// </summary>
+    [TestClass]
+    public class CommandAsyncResultTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelDirectTcpipTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Channels
+{
+    /// <summary>
+    /// Implements "direct-tcpip" SSH channel.
+    /// </summary>
+    [TestClass]
+    public partial class ChannelDirectTcpipTestTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelForwardedTcpipTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Channels
+{
+    /// <summary>
+    /// Implements "forwarded-tcpip" SSH channel.
+    /// </summary>
+    [TestClass]
+    public class ChannelForwardedTcpipTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Channels/ChannelSessionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Channels
+{
+    /// <summary>
+    /// Implements Session SSH channel.
+    /// </summary>
+    [TestClass]
+    public class ChannelSessionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/CipherInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Holds information about key size and cipher to use
+    /// </summary>
+    [TestClass]
+    public class CipherInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ASCIIEncodingTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    ///
+    /// </summary>
+    [TestClass]
+    public class ASCIIEncodingTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationBannerEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.ConnectionInfo.AuthenticationBanner"/> event.
+    /// </summary>
+    [TestClass]
+    public class AuthenticationBannerEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPasswordChangeEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.PasswordConnectionInfo.PasswordExpired"/> event.
+    /// </summary>
+    [TestClass]
+    public class AuthenticationPasswordChangeEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPromptEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.KeyboardInteractiveConnectionInfo.AuthenticationPrompt"/> event.
+    /// </summary>
+    [TestClass]
+    public class AuthenticationPromptEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/AuthenticationPromptTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides prompt information when <see cref="Renci.SshNet.KeyboardInteractiveConnectionInfo.AuthenticationPrompt"/> is raised
+    /// </summary>
+    [TestClass]
+    public class AuthenticationPromptTest : TestBase
+    {
+    }
+}

+ 70 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/BigIntegerTest.cs

@@ -0,0 +1,70 @@
+// vim: noet
+// System.Numerics.BigInt
+//
+// Rodrigo Kumpera (rkumpera@novell.com)
+
+//
+// Copyright (C) 2010 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// A big chuck of code comes the DLR (as hosted in http://ironpython.codeplex.com),
+// which has the following License:
+//
+/* ****************************************************************************
+*
+* Copyright (c) Microsoft Corporation.
+*
+* This source code is subject to terms and conditions of the Microsoft Public License. A
+* copy of the license can be found in the License.html file at the root of this distribution. If
+* you cannot locate the Microsoft Public License, please send an email to
+* dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
+* by the terms of the Microsoft Public License.
+*
+* You must not remove this notice, or any other, from this software.
+*
+*
+* ***************************************************************************/
+
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+/*
+Optimization
+Have proper popcount function for IsPowerOfTwo
+Use unsafe ops to avoid bounds check
+CoreAdd could avoid some resizes by checking for equal sized array that top overflow
+For bitwise operators, hoist the conditionals out of their main loop
+Optimize BitScanBackward
+Use a carry variable to make shift opts do half the number of array ops.
+Schoolbook multiply is O(n^2), use Karatsuba /Toom-3 for large numbers
+*/
+
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Represents an arbitrarily large signed integer.
+    /// </summary>
+    [TestClass]
+    public class BigIntegerTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelDataEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.Channels.Channel.DataReceived"/> event and <see cref="Renci.SshNet.Channels.Channel.ExtendedDataReceived"/> events.
+    /// </summary>
+    [TestClass]
+    public class ChannelDataEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Base class forTest : TestBaseall channel related events.
+    /// </summary>
+    [TestClass]
+    public class ChannelEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelOpenFailedEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.Channels.Channel.OpenFailed"/> event.
+    /// </summary>
+    [TestClass]
+    public class ChannelOpenFailedEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ChannelRequestEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.Channels.Channel.RequestReceived"/> event.
+    /// </summary>
+    [TestClass]
+    public class ChannelRequestEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/DerDataTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Base class forTest : TestBaseDER encoded data.
+    /// </summary>
+    [TestClass]
+    public class DerDataTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ExceptionEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for the ErrorOccured events.
+    /// </summary>
+    [TestClass]
+    public class ExceptionEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/HostKeyEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for the HostKeyReceived event.
+    /// </summary>
+    [TestClass]
+    public class HostKeyEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/NetConfServerExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when there is something wrong with the server capabilities.
+    /// </summary>
+    [TestClass]
+    public partial class NetConfServerExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ObjectIdentifierTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Describes object identifier for DER encoding
+    /// </summary>
+    [TestClass]
+    public class ObjectIdentifierTest : TestBase
+    {
+    }
+}

+ 59 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/PipeStreamTest.cs

@@ -0,0 +1,59 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Common;
+using Renci.SshNet.Tests.Common;
+using System;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    [TestClass]
+    public class PipeStreamTest : TestBase
+    {
+        [TestMethod]
+        [TestCategory("PipeStream")]
+        public void Test_PipeStream_Write_Read_Buffer()
+        {
+            var testBuffer = new byte[1024];
+            new Random().NextBytes(testBuffer);
+
+            var outputBuffer = new byte[1024];
+
+            using (var stream = new PipeStream())
+            {
+                stream.Write(testBuffer, 0, testBuffer.Length);
+
+                Assert.AreEqual(stream.Length, testBuffer.Length);
+
+                stream.Read(outputBuffer, 0, outputBuffer.Length);
+
+                Assert.AreEqual(stream.Length, 0);
+
+                Assert.IsTrue(testBuffer.IsEqualTo(outputBuffer));
+            }
+        }
+
+        [TestMethod]
+        [TestCategory("PipeStream")]
+        public void Test_PipeStream_Write_Read_Byte()
+        {
+            var testBuffer = new byte[1024];
+            new Random().NextBytes(testBuffer);
+
+            var outputBuffer = new byte[1024];
+
+            using (var stream = new PipeStream())
+            {
+                stream.Write(testBuffer, 0, testBuffer.Length);
+
+                Assert.AreEqual(stream.Length, testBuffer.Length);
+
+                stream.ReadByte();
+
+                Assert.AreEqual(stream.Length, testBuffer.Length - 1);
+
+                stream.ReadByte();
+
+                Assert.AreEqual(stream.Length, testBuffer.Length - 2);
+            }
+        }
+    }
+}

+ 31 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/PortForwardEventArgsTest.cs

@@ -0,0 +1,31 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Common;
+using Renci.SshNet.Tests.Common;
+using System;
+using System.Net;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for <see cref="Renci.SshNet.ForwardedPort.RequestReceived"/> event.
+    /// </summary>
+    [TestClass]
+    public class PortForwardEventArgsTest : TestBase
+    {
+        [TestMethod]
+        [Description("Test passing null to constructor of PortForwardEventArgs.")]
+        [ExpectedException(typeof(ArgumentNullException))]
+        public void Test_PortForwardEventArgs_Host_Null()
+        {
+            var args = new PortForwardEventArgs(null, 80);
+        }
+
+        [TestMethod]
+        [Description("Test passing an invalid port to constructor of PortForwardEventArgs.")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_PortForwardEventArgs_Port_Invalid()
+        {
+            var args = new PortForwardEventArgs("string", IPEndPoint.MaxPort + 1);
+        }
+    }
+}

+ 8 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ProxyExceptionTest.NET40.cs

@@ -0,0 +1,8 @@
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    public partial class ProxyExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ProxyExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when SCP error occurred.
+    /// </summary>
+    [TestClass]
+    public partial class ProxyExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpDownloadEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for the Downloading event.
+    /// </summary>
+    [TestClass]
+    public class ScpDownloadEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when SCP error occurred.
+    /// </summary>
+    [TestClass]
+    public partial class ScpExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ScpUploadEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for the Uploading event.
+    /// </summary>
+    [TestClass]
+    public class ScpUploadEventArgsTest : TestBase
+    {
+    }
+}

+ 75 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SemaphoreLightTest.cs

@@ -0,0 +1,75 @@
+using System;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Light implementation of SemaphoreSlim.
+    /// </summary>
+    public class SemaphoreLightTest
+    {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SemaphoreLightTest"/> class, specifying
+        /// the initial number of requests that can be granted concurrently.
+        /// </summary>
+        /// <param name="initialCount">The initial number of requests for the semaphore that can be granted concurrently.</param>
+        /// <exception cref="ArgumentOutOfRangeException"><paramref name="initialCount"/> is a negative number.</exception>
+        //    public SemaphoreLight(int initialCount)
+        //    {
+        //        if (initialCount < 0 )
+        //            throw new ArgumentOutOfRangeException("The initial argument is negative");
+
+        //        this._currentCount = initialCount;
+        //    }
+
+        //    /// <summary>
+        //    /// Gets the current count of the <see cref="SemaphoreLight"/>.
+        //    /// </summary>
+        //    public int CurrentCount { get { return this._currentCount; } }
+
+        //    /// <summary>
+        //    /// Exits the <see cref="SemaphoreLight"/> once.
+        //    /// </summary>
+        //    /// <returns>The previous count of the <see cref="SemaphoreLight"/>.</returns>
+        //    public int Release()
+        //    {
+        //        return this.Release(1);
+        //    }
+
+        //    /// <summary>
+        //    /// Exits the <see cref="SemaphoreLight"/> a specified number of times.
+        //    /// </summary>
+        //    /// <param name="releaseCount">The number of times to exit the semaphore.</param>
+        //    /// <returns>The previous count of the <see cref="SemaphoreLight"/>.</returns>
+        //    public int Release(int releaseCount)
+        //    {
+        //        var oldCount = this._currentCount;
+
+        //        lock (this._lock)
+        //        {
+        //            this._currentCount += releaseCount;
+
+        //            Monitor.Pulse(this._lock);
+        //        }
+
+        //        return oldCount;
+        //    }
+
+        //    /// <summary>
+        //    /// Blocks the current thread until it can enter the <see cref="SemaphoreLight"/>.
+        //    /// </summary>
+        //    public void Wait()
+        //    {
+        //        lock (this._lock)
+        //        {
+        //            while (this._currentCount < 1)
+        //            {
+        //                Monitor.Wait(this._lock);
+        //            }
+
+        //            this._currentCount--;
+
+        //            Monitor.Pulse(this._lock);
+        //        }
+        //    }
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SftpPathNotFoundExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when file or directory is not found.
+    /// </summary>
+    [TestClass]
+    public partial class SftpPathNotFoundExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SftpPermissionDeniedExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when operation permission is denied.
+    /// </summary>
+    [TestClass]
+    public partial class SftpPermissionDeniedExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/ShellDataEventArgsTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// Provides data for Shell DataReceived event
+    /// </summary>
+    [TestClass]
+    public class ShellDataEventArgsTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshAuthenticationExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when authentication failed.
+    /// </summary>
+    [TestClass]
+    public partial class SshAuthenticationExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshConnectionExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when connection was terminated.
+    /// </summary>
+    [TestClass]
+    public partial class SshConnectionExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when SSH exception occurs.
+    /// </summary>
+    [TestClass]
+    public partial class SshExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshOperationTimeoutExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when operation is timed out.
+    /// </summary>
+    [TestClass]
+    public partial class SshOperationTimeoutExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Common/SshPassPhraseNullOrEmptyExceptionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Common
+{
+    /// <summary>
+    /// The exception that is thrown when pass phrase for key file is empty or null
+    /// </summary>
+    [TestClass]
+    public partial class SshPassPhraseNullOrEmptyExceptionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibOpenSshTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Compression
+{
+    /// <summary>
+    /// Represents "zlib@openssh.org" compression implementation
+    /// </summary>
+    [TestClass]
+    public class ZlibOpenSshTest : TestBase
+    {
+    }
+}

+ 29 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibStreamTest.cs

@@ -0,0 +1,29 @@
+namespace Renci.SshNet.Tests.Classes.Compression
+{
+    public class ZlibStreamTest
+    {
+        //private readonly Ionic.Zlib.ZlibStream _baseStream;
+
+        //public ZlibStream(Stream stream, CompressionMode mode)
+        //{
+        //    //switch (mode)
+        //    //{
+        //    //    case CompressionMode.Compress:
+        //    //        this._baseStream = new Ionic.Zlib.ZlibStream(stream, Ionic.Zlib.CompressionMode.Compress, Ionic.Zlib.CompressionLevel.Default);
+        //    //        break;
+        //    //    case CompressionMode.Decompress:
+        //    //        this._baseStream = new Ionic.Zlib.ZlibStream(stream, Ionic.Zlib.CompressionMode.Decompress, Ionic.Zlib.CompressionLevel.Default);
+        //    //        break;
+        //    //    default:
+        //    //        break;
+        //    //}
+
+        //    //this._baseStream.FlushMode = Ionic.Zlib.FlushType.Partial;
+        //}
+
+        //public void Write(byte[] buffer, int offset, int count)
+        //{
+        //    //this._baseStream.Write(buffer, offset, count);
+        //}
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Compression/ZlibTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Compression
+{
+    /// <summary>
+    /// Represents "zlib" compression implementation
+    /// </summary>
+    [TestClass]
+    public class ZlibTest : TestBase
+    {
+    }
+}

+ 112 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ConnectionInfoTest.cs

@@ -0,0 +1,112 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+using Renci.SshNet.Tests.Properties;
+using System;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Represents remote connection information class.
+    /// </summary>
+    [TestClass]
+    public class ConnectionInfoTest : TestBase
+    {
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass null as proxy host.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentException))]
+        public void Test_ConnectionInfo_ProxyHost_Null()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.Http, null, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass too large proxy port.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_ConnectionInfo_ProxyPort_Large()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.Http, Resources.HOST, int.MaxValue, Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass too small proxy port.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_ConnectionInfo_ProxyPort_Small()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.Http, Resources.HOST, int.MinValue, Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass a valid proxy port.")]
+        [Owner("Kenneth_aa")]
+        public void Test_ConnectionInfo_ProxyPort_Valid()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass null as host.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentException))]
+        public void Test_ConnectionInfo_Host_Null()
+        {
+            new ConnectionInfo(null, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass a valid host.")]
+        [Owner("Kenneth_aa")]
+        public void Test_ConnectionInfo_Host_Valid()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass too large port.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_ConnectionInfo_Port_Large()
+        {
+            new ConnectionInfo(Resources.HOST, int.MaxValue, Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass too small port.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_ConnectionInfo_Port_Small()
+        {
+            new ConnectionInfo(Resources.HOST, int.MinValue, Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass a valid port.")]
+        [Owner("Kenneth_aa")]
+        public void Test_ConnectionInfo_Port_Valid()
+        {
+            new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+        }
+
+        [TestMethod]
+        [TestCategory("ConnectionInfo")]
+        [Description("Pass null as session.")]
+        [Owner("Kenneth_aa")]
+        [ExpectedException(typeof(ArgumentNullException))]
+        public void Test_ConnectionInfo_Authenticate_Null()
+        {
+            var ret = new ConnectionInfo(Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, ProxyTypes.None, Resources.HOST, int.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD, null);
+            ret.Authenticate(null);
+        }
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ExpectActionTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Specifies behavior for expected expression
+    /// </summary>
+    [TestClass]
+    public class ExpectActionTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortDynamicTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides functionality for dynamic port forwarding
+    /// </summary>
+    [TestClass]
+    public partial class ForwardedPortDynamicTest : TestBase
+    {
+    }
+}

+ 106 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortLocalTest.NET40.cs

@@ -0,0 +1,106 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Common;
+using Renci.SshNet.Tests.Common;
+using Renci.SshNet.Tests.Properties;
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Net;
+
+namespace Renci.SshNet.Tests.SshClientTests
+{
+    /// <summary>
+    /// Summary description for UnitTest1
+    /// </summary>
+    [TestClass]
+    public partial class ForwardedPortLocalTest : TestBase
+    {
+        [TestMethod]
+        [ExpectedException(typeof(SshConnectionException))]
+        public void Test_PortForwarding_Local_Without_Connecting()
+        {
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
+                client.AddForwardedPort(port1);
+                port1.Exception += delegate(object sender, ExceptionEventArgs e)
+                {
+                    Assert.Fail(e.Exception.ToString());
+                };
+                port1.Start();
+
+                System.Threading.Tasks.Parallel.For(0, 100,
+
+                    //new ParallelOptions
+                    //{
+                    //    MaxDegreeOfParallelism = 20,
+                    //},
+                    (counter) =>
+                    {
+                        var start = DateTime.Now;
+                        var req = HttpWebRequest.Create("http://localhost:8084");
+                        using (var response = req.GetResponse())
+                        {
+                            var data = ReadStream(response.GetResponseStream());
+                            var end = DateTime.Now;
+
+                            Debug.WriteLine(string.Format("Request# {2}: Lenght: {0} Time: {1}", data.Length, (end - start), counter));
+                        }
+                    }
+                );
+            }
+        }
+
+        [TestMethod]
+        public void Test_PortForwarding_Local()
+        {
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+                var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
+                client.AddForwardedPort(port1);
+                port1.Exception += delegate(object sender, ExceptionEventArgs e)
+                {
+                    Assert.Fail(e.Exception.ToString());
+                };
+                port1.Start();
+
+                System.Threading.Tasks.Parallel.For(0, 100,
+
+                    //new ParallelOptions
+                    //{
+                    //    MaxDegreeOfParallelism = 20,
+                    //},
+                    (counter) =>
+                    {
+                        var start = DateTime.Now;
+                        var req = HttpWebRequest.Create("http://localhost:8084");
+                        using (var response = req.GetResponse())
+                        {
+                            var data = ReadStream(response.GetResponseStream());
+                            var end = DateTime.Now;
+
+                            Debug.WriteLine(string.Format("Request# {2}: Length: {0} Time: {1}", data.Length, (end - start), counter));
+                        }
+                    }
+                );
+            }
+        }
+
+        private static byte[] ReadStream(Stream stream)
+        {
+            byte[] buffer = new byte[1024];
+            using (MemoryStream ms = new MemoryStream())
+            {
+                while (true)
+                {
+                    int read = stream.Read(buffer, 0, buffer.Length);
+                    if (read > 0)
+                        ms.Write(buffer, 0, read);
+                    else
+                        return ms.ToArray();
+                }
+            }
+        }
+    }
+}

+ 106 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortLocalTest.cs

@@ -0,0 +1,106 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Common;
+using Renci.SshNet.Tests.Common;
+using Renci.SshNet.Tests.Properties;
+using System;
+using System.Diagnostics;
+using System.Net;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides functionality for local port forwarding
+    /// </summary>
+    [TestClass]
+    public partial class ForwardedPortLocalTest : TestBase
+    {
+        [TestMethod]
+        [WorkItem(713)]
+        [Owner("kenneth_aa")]
+        [TestCategory("PortForwarding")]
+        [Description("Test if calling Stop on ForwardedPortLocal instance causes wait.")]
+        public void Test_PortForwarding_Local_Stop_Hangs_On_Wait()
+        {
+            using (var client = new SshClient(Resources.HOST, Int32.Parse(Resources.PORT), Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+
+                var port1 = new ForwardedPortLocal("localhost", 8084, "www.google.com", 80);
+                client.AddForwardedPort(port1);
+                port1.Exception += delegate(object sender, ExceptionEventArgs e)
+                {
+                    Assert.Fail(e.Exception.ToString());
+                };
+
+                port1.Start();
+
+                bool hasTestedTunnel = false;
+                System.Threading.ThreadPool.QueueUserWorkItem(delegate(object state)
+                {
+                    try
+                    {
+                        var url = "http://www.google.com/";
+                        Debug.WriteLine("Starting web request to \"" + url + "\"");
+                        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
+                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+
+                        Assert.IsNotNull(response);
+
+                        Debug.WriteLine("Http Response status code: " + response.StatusCode.ToString());
+
+                        response.Close();
+
+                        hasTestedTunnel = true;
+                    }
+                    catch (Exception ex)
+                    {
+                        Assert.Fail(ex.ToString());
+                    }
+                });
+
+                // Wait for the web request to complete.
+                while (!hasTestedTunnel)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                }
+
+                try
+                {
+                    // Try stop the port forwarding, wait 3 seconds and fail if it is still started.
+                    System.Threading.ThreadPool.QueueUserWorkItem(delegate(object state)
+                    {
+                        Debug.WriteLine("Trying to stop port forward.");
+                        port1.Stop();
+                        Debug.WriteLine("Port forwarding stopped.");
+                    });
+
+                    System.Threading.Thread.Sleep(3000);
+                    if (port1.IsStarted)
+                    {
+                        Assert.Fail("Port forwarding not stopped.");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    Assert.Fail(ex.ToString());
+                }
+                client.Disconnect();
+                Debug.WriteLine("Success.");
+            }
+        }
+
+        [TestMethod]
+        [Description("Test passing null to AddForwardedPort hosts (local).")]
+        [ExpectedException(typeof(ArgumentNullException))]
+        public void Test_AddForwardedPort_Local_Hosts_Are_Null()
+        {
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+                var port1 = new ForwardedPortLocal(null, 8080, null, 80);
+                client.AddForwardedPort(port1);
+                client.Disconnect();
+            }
+        }
+    }
+}

+ 55 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortRemote.NET40.cs

@@ -0,0 +1,55 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Common;
+using Renci.SshNet.Tests.Common;
+using Renci.SshNet.Tests.Properties;
+using System;
+using System.Diagnostics;
+using System.Threading;
+
+namespace Renci.SshNet.Tests.SshClientTests
+{
+    /// <summary>
+    /// Summary description for UnitTest1
+    /// </summary>
+    [TestClass]
+    public partial class ForwardedPortRemoteTest : TestBase
+    {
+        [TestMethod]
+        public void Test_PortForwarding_Remote()
+        {
+            //  ******************************************************************
+            //  ************* Tests are still in not finished ********************
+            //  ******************************************************************
+
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+                var port1 = new ForwardedPortRemote(8082, "www.renci.org", 80);
+                client.AddForwardedPort(port1);
+                port1.Exception += delegate(object sender, ExceptionEventArgs e)
+                {
+                    Assert.Fail(e.Exception.ToString());
+                };
+                port1.Start();
+                var boundport = port1.BoundPort;
+
+                System.Threading.Tasks.Parallel.For(0, 5,
+
+                    //new ParallelOptions
+                    //{
+                    //    MaxDegreeOfParallelism = 1,
+                    //},
+                    (counter) =>
+                    {
+                        var cmd = client.CreateCommand(string.Format("wget -O- http://localhost:{0}", boundport));
+                        var result = cmd.Execute();
+                        var end = DateTime.Now;
+                        Debug.WriteLine(string.Format("Length: {0}", result.Length));
+                    }
+                );
+                Thread.Sleep(1000 * 100);
+                port1.Stop();
+            }
+        }
+    }
+}

+ 43 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/ForwardedPortRemoteTest.cs

@@ -0,0 +1,43 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+using Renci.SshNet.Tests.Properties;
+using System;
+using System.Net;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides functionality for remote port forwarding
+    /// </summary>
+    [TestClass]
+    public partial class ForwardedPortRemoteTest : TestBase
+    {
+        [TestMethod]
+        [Description("Test passing null to AddForwardedPort hosts (remote).")]
+        [ExpectedException(typeof(ArgumentNullException))]
+        public void Test_AddForwardedPort_Remote_Hosts_Are_Null()
+        {
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+                var port1 = new ForwardedPortRemote(null, 8080, null, 80);
+                client.AddForwardedPort(port1);
+                client.Disconnect();
+            }
+        }
+
+        [TestMethod]
+        [Description("Test passing invalid port numbers to AddForwardedPort.")]
+        [ExpectedException(typeof(ArgumentOutOfRangeException))]
+        public void Test_AddForwardedPort_Invalid_PortNumber()
+        {
+            using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
+            {
+                client.Connect();
+                var port1 = new ForwardedPortRemote("localhost", IPEndPoint.MaxPort + 1, "www.renci.org", IPEndPoint.MaxPort + 1);
+                client.AddForwardedPort(port1);
+                client.Disconnect();
+            }
+        }
+    }
+}

+ 33 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/KeyboardInteractiveAuthenticationMethodTest.cs

@@ -0,0 +1,33 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+using System;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides functionality to perform keyboard interactive authentication.
+    /// </summary>
+    [TestClass]
+    public partial class KeyboardInteractiveAuthenticationMethodTest : TestBase
+    {
+        [TestMethod]
+        [TestCategory("AuthenticationMethod")]
+        [Owner("Kenneth_aa")]
+        [Description("KeyboardInteractiveAuthenticationMethod: Pass null as username.")]
+        [ExpectedException(typeof(ArgumentException))]
+        public void Keyboard_Test_Pass_Null()
+        {
+            new KeyboardInteractiveAuthenticationMethod(null);
+        }
+
+        [TestMethod]
+        [TestCategory("AuthenticationMethod")]
+        [Owner("Kenneth_aa")]
+        [Description("KeyboardInteractiveAuthenticationMethod: Pass String.Empty as username.")]
+        [ExpectedException(typeof(ArgumentException))]
+        public void Keyboard_Test_Pass_Whitespace()
+        {
+            new KeyboardInteractiveAuthenticationMethod(string.Empty);
+        }
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/KeyboardInteractiveConnectionInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides connection information when keyboard interactive authentication method is used
+    /// </summary>
+    [TestClass]
+    public class KeyboardInteractiveConnectionInfoTest : TestBase
+    {
+    }
+}

+ 14 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/MessageEventArgsTest.cs

@@ -0,0 +1,14 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes
+{
+    /// <summary>
+    /// Provides data for message events.
+    /// </summary>
+    /// <typeparam name="T">Message type</typeparam>
+    [TestClass]
+    public class MessageEventArgsTest : TestBase
+    {
+    }
+}

+ 20 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/BannerMessageTest.cs

@@ -0,0 +1,20 @@
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_BANNER message.
+    /// </summary>
+    public class BannerMessageTest : TestBase
+    {
+        /// <summary>
+        /// Gets banner message.
+        /// </summary>
+        public string Message { get; private set; }
+
+        /// <summary>
+        /// Gets banner language.
+        /// </summary>
+        public string Language { get; private set; }
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/FailureMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_FAILURE message.
+    /// </summary>
+    [TestClass]
+    public class FailureMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/InformationRequestMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_INFO_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class InformationRequestMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/InformationResponseMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_INFO_RESPONSE message.
+    /// </summary>
+    [TestClass]
+    public class InformationResponseMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/PasswordChangeRequiredMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_PASSWD_CHANGEREQ message.
+    /// </summary>
+    [TestClass]
+    public class PasswordChangeRequiredMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/PublicKeyMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_PK_OK message.
+    /// </summary>
+    [TestClass]
+    public class PublicKeyMessageTest : TestBase
+    {
+    }
+}

+ 11 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageHostTest.cs

@@ -0,0 +1,11 @@
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents "hostbased" SSH_MSG_USERAUTH_REQUEST message.
+    /// </summary>
+    public class RequestMessageHostTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageKeyboardInteractiveTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents "keyboard-interactive" SSH_MSG_USERAUTH_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class RequestMessageKeyboardInteractiveTest : TestBase
+    {
+    }
+}

+ 11 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageNoneTest.cs

@@ -0,0 +1,11 @@
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents "none" SSH_MSG_USERAUTH_REQUEST message.
+    /// </summary>
+    public class RequestMessageNoneTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessagePasswordTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents "password" SSH_MSG_USERAUTH_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class RequestMessagePasswordTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessagePublicKeyTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents "publickey" SSH_MSG_USERAUTH_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class RequestMessagePublicKeyTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/RequestMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_REQUEST message. Server as a base message for other user authentication requests.
+    /// </summary>
+    [TestClass]
+    public class RequestMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Authentication/SuccessMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Authentication
+{
+    /// <summary>
+    /// Represents SSH_MSG_USERAUTH_SUCCESS message.
+    /// </summary>
+    [TestClass]
+    public class SuccessMessageTest : TestBase
+    {
+    }
+}

+ 26 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelCloseMessageTest.cs

@@ -0,0 +1,26 @@
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_CLOSE message.
+    /// </summary>
+    public class ChannelCloseMessageTest : TestBase
+    {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="ChannelCloseMessage"/> class.
+        /// </summary>
+        //public ChannelCloseMessage()
+        //{
+        //}
+
+        ///// <summary>
+        ///// Initializes a new instance of the <see cref="ChannelCloseMessage"/> class.
+        ///// </summary>
+        ///// <param name="localChannelNumber">The local channel number.</param>
+        //public ChannelCloseMessage(uint localChannelNumber)
+        //{
+        //    LocalChannelNumber = localChannelNumber;
+        //}
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelDataMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_DATA message.
+    /// </summary>
+    [TestClass]
+    public class ChannelDataMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelEofMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_EOF message.
+    /// </summary>
+    [TestClass]
+    public class ChannelEofMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelExtendedDataMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_EXTENDED_DATA message.
+    /// </summary>
+    [TestClass]
+    public class ChannelExtendedDataMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelFailureMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_FAILURE message.
+    /// </summary>
+    [TestClass]
+    public class ChannelFailureMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/ChannelOpenMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_OPEN message.
+    /// </summary>
+    [TestClass]
+    public class ChannelOpenMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/DirectTcpipChannelInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Used to open "direct-tcpip" channel type
+    /// </summary>
+    [TestClass]
+    public class DirectTcpipChannelInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/ForwardedTcpipChannelInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Used to open "forwarded-tcpip" channel type
+    /// </summary>
+    [TestClass]
+    public class ForwardedTcpipChannelInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/SessionChannelOpenInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Used to open "session" channel type
+    /// </summary>
+    [TestClass]
+    public class SessionChannelOpenInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpen/X11ChannelOpenInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Used to open "x11" channel type
+    /// </summary>
+    [TestClass]
+    public class X11ChannelOpenInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpenConfirmationMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_OPEN_CONFIRMATION message.
+    /// </summary>
+    [TestClass]
+    public class ChannelOpenConfirmationMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelOpenFailureMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_OPEN_FAILURE message.
+    /// </summary>
+    [TestClass]
+    public class ChannelOpenFailureMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/BreakRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "break" type channel request information
+    /// </summary>
+    [TestClass]
+    public class BreakRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ChannelRequestMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class ChannelRequestMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/EndOfWriteRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "eow@openssh.com" type channel request information
+    /// </summary>
+    [TestClass]
+    public class EndOfWriteRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/EnvironmentVariableRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "env" type channel request information
+    /// </summary>
+    [TestClass]
+    public class EnvironmentVariableRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExecRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "exec" type channel request information
+    /// </summary>
+    [TestClass]
+    public class ExecRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExitSignalRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "exit-signal" type channel request information
+    /// </summary>
+    [TestClass]
+    public class ExitSignalRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ExitStatusRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "exit-status" type channel request information
+    /// </summary>
+    [TestClass]
+    public class ExitStatusRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/KeepAliveRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "keepalive@openssh.com" type channel request information
+    /// </summary>
+    [TestClass]
+    public class KeepAliveRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/PseudoTerminalInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "pty-req" type channel request information
+    /// </summary>
+    [TestClass]
+    public class PseudoTerminalRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/ShellRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "shell" type channel request information
+    /// </summary>
+    [TestClass]
+    public class ShellRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/SignalRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "signal" type channel request information
+    /// </summary>
+    [TestClass]
+    public class SignalRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/SubsystemRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "subsystem" type channel request information
+    /// </summary>
+    [TestClass]
+    public class SubsystemRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/WindowChangeRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "window-change" type channel request information
+    /// </summary>
+    [TestClass]
+    public class WindowChangeRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/X11ForwardingRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "x11-req" type channel request information
+    /// </summary>
+    [TestClass]
+    public class X11ForwardingRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelRequest/XonXoffRequestInfoTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents "xon-xoff" type channel request information
+    /// </summary>
+    [TestClass]
+    public class XonXoffRequestInfoTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelSuccessMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_SUCCESS message.
+    /// </summary>
+    [TestClass]
+    public class ChannelSuccessMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/ChannelWindowAdjustMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_CHANNEL_SUCCESS message.
+    /// </summary>
+    [TestClass]
+    public class ChannelWindowAdjustMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/GlobalRequestMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_GLOBAL_REQUEST message.
+    /// </summary>
+    [TestClass]
+    public class GlobalRequestMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/RequestFailureMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_REQUEST_FAILURE message.
+    /// </summary>
+    [TestClass]
+    public class RequestFailureMessageTest : TestBase
+    {
+    }
+}

+ 13 - 0
Renci.SshClient/Renci.SshNet.Tests/Classes/Messages/Connection/RequestSuccessMessageTest.cs

@@ -0,0 +1,13 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Renci.SshNet.Tests.Common;
+
+namespace Renci.SshNet.Tests.Classes.Messages.Connection
+{
+    /// <summary>
+    /// Represents SSH_MSG_REQUEST_SUCCESS message.
+    /// </summary>
+    [TestClass]
+    public class RequestSuccessMessageTest : TestBase
+    {
+    }
+}

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно