| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using Renci.SshNet.Common;
- namespace Renci.SshNet.IntegrationTests
- {
- /// <summary>
- /// The SFTP client integration tests
- /// </summary>
- [TestClass]
- public class SftpClientTests : IntegrationTestBase, IDisposable
- {
- private readonly SftpClient _sftpClient;
- public SftpClientTests()
- {
- _sftpClient = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password);
- _sftpClient.Connect();
- }
- [TestMethod]
- public void Create_directory_with_contents_and_list_it()
- {
- var testDirectory = "/home/sshnet/sshnet-test";
- var testFileName = "test-file.txt";
- var testFilePath = $"{testDirectory}/{testFileName}";
- var testContent = "file content";
- // Create new directory and check if it exists
- _sftpClient.CreateDirectory(testDirectory);
- Assert.IsTrue(_sftpClient.Exists(testDirectory));
- // Upload file and check if it exists
- using var fileStream = new MemoryStream(Encoding.UTF8.GetBytes(testContent));
- _sftpClient.UploadFile(fileStream, testFilePath);
- Assert.IsTrue(_sftpClient.Exists(testFilePath));
- // Check if ListDirectory works
- var files = _sftpClient.ListDirectory(testDirectory);
- _sftpClient.DeleteFile(testFilePath);
- _sftpClient.DeleteDirectory(testDirectory);
- var builder = new StringBuilder();
- foreach (var file in files)
- {
- builder.AppendLine($"{file.FullName} {file.IsRegularFile} {file.IsDirectory}");
- }
- Assert.AreEqual(@"/home/sshnet/sshnet-test/. False True
- /home/sshnet/sshnet-test/.. False True
- /home/sshnet/sshnet-test/test-file.txt True False
- ", builder.ToString());
- }
- [TestMethod]
- public async Task Create_directory_with_contents_and_list_it_async()
- {
- var testDirectory = "/home/sshnet/sshnet-test";
- var testFileName = "test-file.txt";
- var testFilePath = $"{testDirectory}/{testFileName}";
- var testContent = "file content";
- // Create new directory and check if it exists
- _sftpClient.CreateDirectory(testDirectory);
- Assert.IsTrue(_sftpClient.Exists(testDirectory));
- // Upload file and check if it exists
- using var fileStream = new MemoryStream(Encoding.UTF8.GetBytes(testContent));
- _sftpClient.UploadFile(fileStream, testFilePath);
- Assert.IsTrue(_sftpClient.Exists(testFilePath));
- // Check if ListDirectory works
- var files = _sftpClient.ListDirectoryAsync(testDirectory, CancellationToken.None);
- var builder = new StringBuilder();
- await foreach (var file in files)
- {
- builder.AppendLine($"{file.FullName} {file.IsRegularFile} {file.IsDirectory}");
- }
- _sftpClient.DeleteFile(testFilePath);
- _sftpClient.DeleteDirectory(testDirectory);
- Assert.AreEqual(@"/home/sshnet/sshnet-test/. False True
- /home/sshnet/sshnet-test/.. False True
- /home/sshnet/sshnet-test/test-file.txt True False
- ", builder.ToString());
- }
- [TestMethod]
- [ExpectedException(typeof(SftpPermissionDeniedException), "Permission denied")]
- public void Test_Sftp_ListDirectory_Permission_Denied()
- {
- _sftpClient.ListDirectory("/root");
- }
- public void Dispose()
- {
- _sftpClient.Disconnect();
- _sftpClient.Dispose();
- }
- }
- }
|