TestPortForwarding.NET40.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using System;
  2. using System.Diagnostics;
  3. using System.IO;
  4. using System.Net;
  5. using Microsoft.VisualStudio.TestTools.UnitTesting;
  6. using Renci.SshNet.Tests.Properties;
  7. using Renci.SshNet.Common;
  8. using System.Threading;
  9. namespace Renci.SshNet.Tests.SshClientTests
  10. {
  11. /// <summary>
  12. /// Summary description for UnitTest1
  13. /// </summary>
  14. public partial class TestPortForwarding
  15. {
  16. [TestMethod]
  17. [ExpectedException(typeof(SshConnectionException))]
  18. public void Test_PortForwarding_Local_Without_Connecting()
  19. {
  20. using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
  21. {
  22. var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
  23. client.AddForwardedPort(port1);
  24. port1.Exception += delegate(object sender, ExceptionEventArgs e)
  25. {
  26. Assert.Fail(e.Exception.ToString());
  27. };
  28. port1.Start();
  29. System.Threading.Tasks.Parallel.For(0, 100,
  30. //new ParallelOptions
  31. //{
  32. // MaxDegreeOfParallelism = 20,
  33. //},
  34. (counter) =>
  35. {
  36. var start = DateTime.Now;
  37. var req = HttpWebRequest.Create("http://localhost:8084");
  38. using (var response = req.GetResponse())
  39. {
  40. var data = ReadStream(response.GetResponseStream());
  41. var end = DateTime.Now;
  42. Debug.WriteLine(string.Format("Request# {2}: Lenght: {0} Time: {1}", data.Length, (end - start), counter));
  43. }
  44. }
  45. );
  46. }
  47. }
  48. [TestMethod]
  49. public void Test_PortForwarding_Remote()
  50. {
  51. // ******************************************************************
  52. // ************* Tests are still in not finished ********************
  53. // ******************************************************************
  54. using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
  55. {
  56. client.Connect();
  57. var port1 = new ForwardedPortRemote(8082, "www.renci.org", 80);
  58. client.AddForwardedPort(port1);
  59. port1.Exception += delegate(object sender, ExceptionEventArgs e)
  60. {
  61. Assert.Fail(e.Exception.ToString());
  62. };
  63. port1.Start();
  64. var boundport = port1.BoundPort;
  65. System.Threading.Tasks.Parallel.For(0, 5,
  66. //new ParallelOptions
  67. //{
  68. // MaxDegreeOfParallelism = 1,
  69. //},
  70. (counter) =>
  71. {
  72. var cmd = client.CreateCommand(string.Format("wget -O- http://localhost:{0}", boundport));
  73. var result = cmd.Execute();
  74. var end = DateTime.Now;
  75. Debug.WriteLine(string.Format("Length: {0}", result.Length));
  76. }
  77. );
  78. Thread.Sleep(1000 * 100);
  79. port1.Stop();
  80. }
  81. }
  82. [TestMethod]
  83. public void Test_PortForwarding_Local()
  84. {
  85. using (var client = new SshClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
  86. {
  87. client.Connect();
  88. var port1 = new ForwardedPortLocal("localhost", 8084, "www.renci.org", 80);
  89. client.AddForwardedPort(port1);
  90. port1.Exception += delegate(object sender, ExceptionEventArgs e)
  91. {
  92. Assert.Fail(e.Exception.ToString());
  93. };
  94. port1.Start();
  95. System.Threading.Tasks.Parallel.For(0, 100,
  96. //new ParallelOptions
  97. //{
  98. // MaxDegreeOfParallelism = 20,
  99. //},
  100. (counter) =>
  101. {
  102. var start = DateTime.Now;
  103. var req = HttpWebRequest.Create("http://localhost:8084");
  104. using (var response = req.GetResponse())
  105. {
  106. var data = ReadStream(response.GetResponseStream());
  107. var end = DateTime.Now;
  108. Debug.WriteLine(string.Format("Request# {2}: Length: {0} Time: {1}", data.Length, (end - start), counter));
  109. }
  110. }
  111. );
  112. }
  113. }
  114. }
  115. }