SftpClientTest.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. var ex = Assert.Throws<ArgumentOutOfRangeException>(() => target.OperationTimeout = operationTimeout);
  69. Assert.AreEqual("OperationTimeout", ex.ParamName);
  70. }
  71. [TestMethod]
  72. public void OperationTimeout_GreaterThanLowerLimit()
  73. {
  74. var operationTimeout = TimeSpan.FromMilliseconds(int.MaxValue).Add(TimeSpan.FromMilliseconds(1));
  75. var connectionInfo = new PasswordConnectionInfo("host", 22, "admin", "pwd");
  76. var target = new SftpClient(connectionInfo);
  77. var ex = Assert.Throws<ArgumentOutOfRangeException>(() => target.OperationTimeout = operationTimeout);
  78. Assert.AreEqual("OperationTimeout", ex.ParamName);
  79. }
  80. }
  81. }