using Renci.SshNet.Common;
namespace Renci.SshNet.IntegrationTests.OldIntegrationTests
{
///
/// Represents SFTP file information
///
[TestClass]
public class SftpFileTest : IntegrationTestBase
{
[TestMethod]
[TestCategory("Sftp")]
public void Test_Get_Root_Directory()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
var directory = sftp.Get("/");
Assert.AreEqual("/", directory.FullName);
Assert.IsTrue(directory.IsDirectory);
Assert.IsFalse(directory.IsRegularFile);
}
}
[TestMethod]
[TestCategory("Sftp")]
public void Test_Get_Invalid_Directory()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
Assert.ThrowsException(() => sftp.Get("/xyz"));
}
}
[TestMethod]
[TestCategory("Sftp")]
public void Test_Get_File()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
sftp.UploadFile(new MemoryStream(), "abc.txt");
var file = sftp.Get("abc.txt");
Assert.AreEqual("/home/sshnet/abc.txt", file.FullName);
Assert.IsTrue(file.IsRegularFile);
Assert.IsFalse(file.IsDirectory);
}
}
[TestMethod]
[TestCategory("Sftp")]
public void Test_Get_File_Null()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
Assert.ThrowsException(() => sftp.Get(null));
}
}
[TestMethod]
[TestCategory("Sftp")]
public void Test_Get_International_File()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
sftp.UploadFile(new MemoryStream(), "test-üöä-");
var file = sftp.Get("test-üöä-");
Assert.AreEqual("/home/sshnet/test-üöä-", file.FullName);
Assert.IsTrue(file.IsRegularFile);
Assert.IsFalse(file.IsDirectory);
}
}
[TestMethod]
[TestCategory("Sftp")]
public async Task Test_Get_Root_DirectoryAsync()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
var directory = await sftp.GetAsync("/", default).ConfigureAwait(false);
Assert.AreEqual("/", directory.FullName);
Assert.IsTrue(directory.IsDirectory);
Assert.IsFalse(directory.IsRegularFile);
}
}
[TestMethod]
[TestCategory("Sftp")]
public async Task Test_Get_Invalid_DirectoryAsync()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
await Assert.ThrowsExceptionAsync(() => sftp.GetAsync("/xyz", default));
}
}
[TestMethod]
[TestCategory("Sftp")]
public async Task Test_Get_FileAsync()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
sftp.UploadFile(new MemoryStream(), "abc.txt");
var file = await sftp.GetAsync("abc.txt", default).ConfigureAwait(false);
Assert.AreEqual("/home/sshnet/abc.txt", file.FullName);
Assert.IsTrue(file.IsRegularFile);
Assert.IsFalse(file.IsDirectory);
}
}
[TestMethod]
[TestCategory("Sftp")]
public async Task Test_Get_File_NullAsync()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
await Assert.ThrowsExceptionAsync(() => sftp.GetAsync(null, default));
}
}
[TestMethod]
[TestCategory("Sftp")]
public async Task Test_Get_International_FileAsync()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
sftp.UploadFile(new MemoryStream(), "test-üöä-");
var file = await sftp.GetAsync("test-üöä-", default).ConfigureAwait(false);
Assert.AreEqual("/home/sshnet/test-üöä-", file.FullName);
Assert.IsTrue(file.IsRegularFile);
Assert.IsFalse(file.IsDirectory);
}
}
[TestMethod]
[TestCategory("Sftp")]
public void Test_Sftp_SftpFile_MoveTo()
{
using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
{
sftp.Connect();
string uploadedFileName = Path.GetTempFileName();
string remoteFileName = Path.GetRandomFileName();
string newFileName = Path.GetRandomFileName();
CreateTestFile(uploadedFileName, 1);
using (var file = File.OpenRead(uploadedFileName))
{
sftp.UploadFile(file, remoteFileName);
}
var sftpFile = sftp.Get(remoteFileName);
sftpFile.MoveTo(newFileName);
Assert.AreEqual(newFileName, sftpFile.Name);
sftp.Disconnect();
}
}
}
}