SftpClientTest.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Renci.SshNet.Tests.Common;
  4. namespace Renci.SshNet.Tests.Classes
  5. {
  6. /// <summary>
  7. /// Implementation of the SSH File Transfer Protocol (SFTP) over SSH.
  8. /// </summary>
  9. [TestClass]
  10. public partial class SftpClientTest : TestBase
  11. {
  12. private Random _random;
  13. [TestInitialize]
  14. public void SetUp()
  15. {
  16. _random = new Random();
  17. }
  18. [TestMethod]
  19. public void OperationTimeout_Default()
  20. {
  21. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  22. var target = new SftpClient(connectionInfo);
  23. var actual = target.OperationTimeout;
  24. Assert.AreEqual(TimeSpan.FromMilliseconds(-1), actual);
  25. }
  26. [TestMethod]
  27. public void OperationTimeout_InsideLimits()
  28. {
  29. var operationTimeout = TimeSpan.FromMilliseconds(_random.Next(0, int.MaxValue - 1));
  30. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  31. var target = new SftpClient(connectionInfo)
  32. {
  33. OperationTimeout = operationTimeout
  34. };
  35. var actual = target.OperationTimeout;
  36. Assert.AreEqual(operationTimeout, actual);
  37. }
  38. [TestMethod]
  39. public void OperationTimeout_LowerLimit()
  40. {
  41. var operationTimeout = TimeSpan.FromMilliseconds(-1);
  42. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  43. var target = new SftpClient(connectionInfo)
  44. {
  45. OperationTimeout = operationTimeout
  46. };
  47. var actual = target.OperationTimeout;
  48. Assert.AreEqual(operationTimeout, actual);
  49. }
  50. [TestMethod]
  51. public void OperationTimeout_UpperLimit()
  52. {
  53. var operationTimeout = TimeSpan.FromMilliseconds(int.MaxValue);
  54. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  55. var target = new SftpClient(connectionInfo)
  56. {
  57. OperationTimeout = operationTimeout
  58. };
  59. var actual = target.OperationTimeout;
  60. Assert.AreEqual(operationTimeout, actual);
  61. }
  62. [TestMethod]
  63. public void OperationTimeout_LessThanLowerLimit()
  64. {
  65. var operationTimeout = TimeSpan.FromMilliseconds(-2);
  66. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  67. var target = new SftpClient(connectionInfo);
  68. try
  69. {
  70. target.OperationTimeout = operationTimeout;
  71. }
  72. catch (ArgumentOutOfRangeException ex)
  73. {
  74. Assert.IsNull(ex.InnerException);
  75. ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue milliseconds, inclusive.", ex);
  76. Assert.AreEqual("OperationTimeout", ex.ParamName);
  77. }
  78. }
  79. [TestMethod]
  80. public void OperationTimeout_GreaterThanLowerLimit()
  81. {
  82. var operationTimeout = TimeSpan.FromMilliseconds(int.MaxValue).Add(TimeSpan.FromMilliseconds(1));
  83. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  84. var target = new SftpClient(connectionInfo);
  85. try
  86. {
  87. target.OperationTimeout = operationTimeout;
  88. }
  89. catch (ArgumentOutOfRangeException ex)
  90. {
  91. Assert.IsNull(ex.InnerException);
  92. ArgumentExceptionAssert.MessageEquals("The timeout must represent a value between -1 and Int32.MaxValue milliseconds, inclusive.", ex);
  93. Assert.AreEqual("OperationTimeout", ex.ParamName);
  94. }
  95. }
  96. }
  97. }