2
0

SftpClientTest.SynchronizeDirectories.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Renci.SshNet.Tests.Common;
  3. using Renci.SshNet.Tests.Properties;
  4. using System.Diagnostics;
  5. using System.IO;
  6. using System.Linq;
  7. namespace Renci.SshNet.Tests.Classes
  8. {
  9. /// <summary>
  10. /// Implementation of the SSH File Transfer Protocol (SFTP) over SSH.
  11. /// </summary>
  12. public partial class SftpClientTest : TestBase
  13. {
  14. [TestMethod]
  15. [TestCategory("Sftp")]
  16. public void Test_Sftp_SynchronizeDirectories()
  17. {
  18. using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
  19. {
  20. sftp.Connect();
  21. string uploadedFileName = Path.GetTempFileName();
  22. string sourceDir = Path.GetDirectoryName(uploadedFileName);
  23. string destDir = "/";
  24. string searchPattern = Path.GetFileName(uploadedFileName);
  25. var upLoadedFiles = sftp.SynchronizeDirectories(sourceDir, destDir, searchPattern);
  26. Assert.IsTrue(upLoadedFiles.Count() > 0);
  27. foreach (var file in upLoadedFiles)
  28. {
  29. Debug.WriteLine(file.FullName);
  30. }
  31. sftp.Disconnect();
  32. }
  33. }
  34. [TestMethod]
  35. [TestCategory("Sftp")]
  36. public void Test_Sftp_BeginSynchronizeDirectories()
  37. {
  38. using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
  39. {
  40. sftp.Connect();
  41. string uploadedFileName = Path.GetTempFileName();
  42. string sourceDir = Path.GetDirectoryName(uploadedFileName);
  43. string destDir = "/";
  44. string searchPattern = Path.GetFileName(uploadedFileName);
  45. var asyncResult = sftp.BeginSynchronizeDirectories(sourceDir,
  46. destDir,
  47. searchPattern,
  48. null,
  49. null
  50. );
  51. // Wait for the WaitHandle to become signaled.
  52. asyncResult.AsyncWaitHandle.WaitOne(1000);
  53. var upLoadedFiles = sftp.EndSynchronizeDirectories(asyncResult);
  54. Assert.IsTrue(upLoadedFiles.Count() > 0);
  55. foreach (var file in upLoadedFiles)
  56. {
  57. Debug.WriteLine(file.FullName);
  58. }
  59. // Close the wait handle.
  60. asyncResult.AsyncWaitHandle.Close();
  61. sftp.Disconnect();
  62. }
  63. }
  64. }
  65. }