private static FtpConnectionData ConstructConnectionData() { FtpConnectionData connectionData = new FtpConnectionData(); connectionData.Credentials = new NetworkCredential(Username, Password); connectionData.Host = Host; connectionData.Port = Port; return(connectionData); }
public void LoginWithUserNameAndPassword() { SetLoginExpectations(); FtpConnectionData connectionData = ConstructConnectionData(); session.BeginSession(connectionData); communicator.VerifyAllExpectations(); }
public void LoginWithUserNameOnly() { SetResponse(FtpReturnCode.ServiceReadyForNewUser); ExpectCommand("USER banana"); SetResponse(FtpReturnCode.UserLoggedIn); ExpectCommand("TYPE I"); SetResponse(FtpReturnCode.CommandOk); FtpConnectionData connectionData = ConstructConnectionData(); session.BeginSession(connectionData); communicator.VerifyAllExpectations(); }
public void InvalidPassword() { FtpConnectionData connectionData = new FtpConnectionData(); connectionData.Credentials = new NetworkCredential(Username, Password + "xxx"); connectionData.Host = Host; using (IFtpSession session = new FtpSession(new FtpChannelFactoryUsingSockets(), new FtpCommunicator(), new WindowsFileSystem())) { var ex = Assert.Throws <FtpException>(delegate { session.BeginSession(connectionData); }); Assert.AreEqual("Could not log in to the FTP server: 530 User cannot log in.", ex.Message); } }
private static void FtpAction(Action <IFtpSession> action) { FtpConnectionData connectionData = new FtpConnectionData(); connectionData.Credentials = new NetworkCredential(Username, Password); connectionData.Host = Host; connectionData.Port = Port; using (IFtpSession session = new FtpSession(new FtpChannelFactoryUsingSockets(), new FtpCommunicator(), new WindowsFileSystem())) { session.BeginSession(connectionData); action(session); } }
public void ChangeDirectory() { const string RemoteDir = "directory1/directory2"; SetLoginExpectations(); ExpectCommand("CWD " + RemoteDir); SetResponse(FtpReturnCode.RequestedFileActionOkayCompleted); FtpConnectionData connectionData = ConstructConnectionData(); session.BeginSession(connectionData); session.ChangeDirectory(RemoteDir); Assert.AreEqual(RemoteDir, session.CurrentDirectory); communicator.VerifyAllExpectations(); }
public void UploadFiles(bool withBaseDir) { SetLoginExpectations(); ExpectCommand("MKD /dest"); SetResponse(FtpReturnCode.Created); ExpectCommand("MKD /dest/dest2"); SetResponse(FtpReturnCode.Created); ExpectCommand("PASV"); SetResponse(FtpReturnCode.EnteringPassiveMode, "(10,20,30,40,1,2)"); dataChannel.Expect(x => x.Connect(new byte[] { 10, 20, 30, 40 }, 258)); ExpectCommand("STOR /dest/dest2/file1.txt"); SetResponse(FtpReturnCode.FileStatusOk); fileSystem.Stub(x => x.ReadFileAsBytes(@"d:\files\file1.txt")).Return(new byte[10]); dataChannel.Expect(x => x.Send(null)).IgnoreArguments().Return(10); SetResponse(FtpReturnCode.ClosingDataConnection); //ExpectCommand("PASV"); SetResponse(FtpReturnCode.EnteringPassiveMode, "(10,20,30,40,1,2)"); dataChannel.Expect(x => x.Connect(new byte[] { 10, 20, 30, 40 }, 258)); ExpectCommand("STOR /dest/dest2/file2.txt"); SetResponse(FtpReturnCode.FileStatusOk); fileSystem.Stub(x => x.ReadFileAsBytes(@"d:\files\file2.txt")).Return(new byte[10]); SetResponse(FtpReturnCode.ClosingDataConnection); FtpConnectionData connectionData = ConstructConnectionData(); session.BeginSession(connectionData); List <string> createdDirs = new List <string>(); List <KeyValuePair <string, string> > uploadedFiles = new List <KeyValuePair <string, string> >(); FileSet files = new FileSet(withBaseDir ? @"d:\files" : null, new[] { @"d:\files\file1.txt", @"d:\files\file2.txt" }); session.UploadFiles( null, files, "/dest/dest2", createdDirs.Add, (l, r) => uploadedFiles.Add(new KeyValuePair <string, string>(l, r))); Assert.AreEqual(2, createdDirs.Count); Assert.AreEqual(2, uploadedFiles.Count); communicator.VerifyAllExpectations(); }
public override int Execute(IConsoleEnvironment env) { FreudeProject project = new FreudeProject(); project.BuildDir = buildDirectory; using (IFtpSession ftpSession = ftpSessionFactory.CreateSession()) { FtpConnectionData connData = new FtpConnectionData(); connData.Credentials = new NetworkCredential(userName, password); connData.Host = server; connData.Port = port; log.InfoFormat(CultureInfo.InvariantCulture, "Connecting to the FTP server {0}:{1}...", connData.Host, connData.Port); ftpSession.BeginSession(connData); PathBuilder buildDirPath = new PathBuilder(buildDirectory); foreach (string sourceFileName in projectBuilder.ListBuiltFiles(project)) { PathBuilder sourceFileNameDebasedBuilder = buildDirPath.DebasePath(sourceFileName, false); PathBuilder destinationFileName; if (remoteRootDirectory != null) { destinationFileName = new PathBuilder(remoteRootDirectory).CombineWith(sourceFileNameDebasedBuilder); } else { destinationFileName = sourceFileNameDebasedBuilder; } string destinationFileNameUnixStyle = destinationFileName.ToUnixPath(); log.InfoFormat(CultureInfo.InvariantCulture, "Uploading file {0} to {1}...", sourceFileName, destinationFileNameUnixStyle); ftpSession.UploadFile(sourceFileName, destinationFileNameUnixStyle); } } return(0); }