Ejemplo n.º 1
0
        public void SftpConnectionTest()
        {
            IFtpHandle ftpConnection = new Sftp("96.126.108.162", "elliot", "e258G741", 22, "/home/elliot/sub2", "ConnectionTest");

            //new Ftp("54.245.114.32", "DailyFiles", "d@yDump!", 21, "/Temp", "ConnectionTest");
            Assert.AreEqual((int)ftpConnection.ConnectionStatus, (int)FtpStatus.Connected);

            List <IRemoteFile> files      = ftpConnection.GetWorkingDirContents();
            string             localPath  = ftpConnection.LocalWorkingDirectory;
            string             remotePath = ftpConnection.RemoteWorkingDirectory;

            ftpConnection.Pull(files.First().Filename);
            string[] localFiles = Directory.GetFiles(localPath);
            Assert.AreNotEqual(0, localFiles.Count());
            //Assert.IsTrue(files.Any(file => file.Filename.Equals(Path.GetFileName(localFiles[0]))));

            ftpConnection.ChangeRemoteWorkingDirectory("folder");
            Assert.AreNotEqual(remotePath, ftpConnection.RemoteWorkingDirectory);
            files = ftpConnection.GetWorkingDirContents();
            Assert.AreEqual(0, files.Count());
            ftpConnection.Push(localFiles.First());
            files = ftpConnection.GetWorkingDirContents();

            ftpConnection.ChangeLocalWorkingDirectory(GatFile.Path(Dir.Data, string.Empty));
            localPath = ftpConnection.LocalWorkingDirectory;
            ftpConnection.Pull(files.First().Filename);
            localFiles = Directory.GetFiles(localPath);
            Assert.AreNotEqual(0, localFiles.Count());

            localPath = GatFile.Path(Dir.Root, string.Empty);
            ftpConnection.Pull(files.First().Filename, localPath);
            localFiles = Directory.GetFiles(localPath);
            Assert.AreNotEqual(0, localFiles.Count());

            ftpConnection.ResetToRootDirectory();
            Assert.AreEqual(remotePath, ftpConnection.RemoteWorkingDirectory);

            files = ftpConnection.GetWorkingDirContents();
            foreach (var file in files)
            {
                ftpConnection.Pull(file.Filename);
                ftpConnection.Push(Path.Combine(ftpConnection.LocalWorkingDirectory, file.Filename), "folder");
            }
        }