SftpFileTest.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using Renci.SshNet.Common;
  2. namespace Renci.SshNet.IntegrationTests.OldIntegrationTests
  3. {
  4. /// <summary>
  5. /// Represents SFTP file information
  6. /// </summary>
  7. [TestClass]
  8. public class SftpFileTest : IntegrationTestBase
  9. {
  10. [TestMethod]
  11. [TestCategory("Sftp")]
  12. public void Test_Get_Root_Directory()
  13. {
  14. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  15. {
  16. sftp.Connect();
  17. var directory = sftp.Get("/");
  18. Assert.AreEqual("/", directory.FullName);
  19. Assert.IsTrue(directory.IsDirectory);
  20. Assert.IsFalse(directory.IsRegularFile);
  21. }
  22. }
  23. [TestMethod]
  24. [TestCategory("Sftp")]
  25. [ExpectedException(typeof(SftpPathNotFoundException))]
  26. public void Test_Get_Invalid_Directory()
  27. {
  28. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  29. {
  30. sftp.Connect();
  31. sftp.Get("/xyz");
  32. }
  33. }
  34. [TestMethod]
  35. [TestCategory("Sftp")]
  36. public void Test_Get_File()
  37. {
  38. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  39. {
  40. sftp.Connect();
  41. sftp.UploadFile(new MemoryStream(), "abc.txt");
  42. var file = sftp.Get("abc.txt");
  43. Assert.AreEqual("/home/sshnet/abc.txt", file.FullName);
  44. Assert.IsTrue(file.IsRegularFile);
  45. Assert.IsFalse(file.IsDirectory);
  46. }
  47. }
  48. [TestMethod]
  49. [TestCategory("Sftp")]
  50. [Description("Test passing null to Get.")]
  51. [ExpectedException(typeof(ArgumentNullException))]
  52. public void Test_Get_File_Null()
  53. {
  54. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  55. {
  56. sftp.Connect();
  57. var file = sftp.Get(null);
  58. sftp.Disconnect();
  59. }
  60. }
  61. [TestMethod]
  62. [TestCategory("Sftp")]
  63. public void Test_Get_International_File()
  64. {
  65. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  66. {
  67. sftp.Connect();
  68. sftp.UploadFile(new MemoryStream(), "test-üöä-");
  69. var file = sftp.Get("test-üöä-");
  70. Assert.AreEqual("/home/sshnet/test-üöä-", file.FullName);
  71. Assert.IsTrue(file.IsRegularFile);
  72. Assert.IsFalse(file.IsDirectory);
  73. }
  74. }
  75. [TestMethod]
  76. [TestCategory("Sftp")]
  77. public void Test_Sftp_SftpFile_MoveTo()
  78. {
  79. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  80. {
  81. sftp.Connect();
  82. string uploadedFileName = Path.GetTempFileName();
  83. string remoteFileName = Path.GetRandomFileName();
  84. string newFileName = Path.GetRandomFileName();
  85. CreateTestFile(uploadedFileName, 1);
  86. using (var file = File.OpenRead(uploadedFileName))
  87. {
  88. sftp.UploadFile(file, remoteFileName);
  89. }
  90. var sftpFile = sftp.Get(remoteFileName);
  91. sftpFile.MoveTo(newFileName);
  92. Assert.AreEqual(newFileName, sftpFile.Name);
  93. sftp.Disconnect();
  94. }
  95. }
  96. }
  97. }