public void Ftp_RenameFileSubDir_Success(FtpExecutionMode mode) { string dir = absoluteUri + Guid.NewGuid().ToString() + "/"; string file = dir + "CreatedFile.txt"; string renamedFileName = "RenamedFile.txt"; string renamedFile = dir + "RenamedFile.txt"; // Create DoCommand(mode, WebRequestMethods.Ftp.MakeDirectory, dir); DoUpload(mode, WebRequestMethods.Ftp.UploadFile, file, helloWorldBytes); Assert.True(DirExists(mode, dir)); Assert.True(FileExists(mode, file)); // Rename DoCommand(mode, WebRequestMethods.Ftp.Rename, file, renamedFileName); Assert.False(FileExists(mode, file)); Assert.True(FileExists(mode, renamedFile)); // Cleanup DoCommand(mode, WebRequestMethods.Ftp.DeleteFile, renamedFile); DoCommand(mode, WebRequestMethods.Ftp.RemoveDirectory, dir); Assert.False(FileExists(mode, renamedFile)); Assert.False(DirExists(mode, dir)); }
private static bool FileExists(FtpExecutionMode mode, string file) { try { DoDownload(mode, WebRequestMethods.Ftp.DownloadFile, file); return(true); } catch (WebException) { } return(false); }
private static bool DirExists(FtpExecutionMode mode, string dir) { try { DoDownload(mode, WebRequestMethods.Ftp.ListDirectory, dir); return(true); } catch (WebException) { } return(false); }
public void Ftp_MakeAndRemoveDir_Success(FtpExecutionMode mode) { string dir = absoluteUri + Guid.NewGuid().ToString() + "/"; DoCommand(mode, WebRequestMethods.Ftp.MakeDirectory, dir); Assert.True(DirExists(mode, dir)); DoCommand(mode, WebRequestMethods.Ftp.RemoveDirectory, dir); Assert.False(DirExists(mode, dir)); }
public void Ftp_CreateAndDelete(FtpExecutionMode mode) { string uri = absoluteUri + Guid.NewGuid().ToString(); DoUpload(mode, WebRequestMethods.Ftp.UploadFile, uri, helloWorldBytes); byte[] responseBytes = DoDownload(mode, WebRequestMethods.Ftp.DownloadFile, uri); Assert.True(responseBytes.SequenceEqual(helloWorldBytes)); DoCommand(mode, WebRequestMethods.Ftp.DeleteFile, uri); Assert.False(FileExists(mode, uri)); }
private static byte[] Do(FtpExecutionMode mode, string method, string uri, byte[] requestBody, string renameTo = null) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); request.EnableSsl = mode.UseSsl; request.UsePassive = mode.UsePassive; request.Method = method; if (renameTo != null) { request.RenameTo = renameTo; } MemoryStream requestMemStream = null; if (requestBody != null) { requestMemStream = new MemoryStream(requestBody); } if (mode.UseAsync) { try { Task <MemoryStream> t = DoAsync(request, requestMemStream); return(t.Result.ToArray()); } catch (AggregateException e) { throw e.InnerException; } } else if (mode.UseOldStyleAsync) { return(DoOldStyleAsync(request, requestMemStream).ToArray()); } else { return(DoSync(request, requestMemStream).ToArray()); } }
private static byte[] DoDownload(FtpExecutionMode mode, string method, string uri) { return(Do(mode, method, uri, null)); }
private static bool FileExists(FtpExecutionMode mode, string file) { try { DoDownload(mode, WebRequestMethods.Ftp.DownloadFile, file); return true; } catch (WebException) { } return false; }
private static bool DirExists(FtpExecutionMode mode, string dir) { try { DoDownload(mode, WebRequestMethods.Ftp.ListDirectory, dir); return true; } catch (WebException) { } return false; }
private static void DoCommand(FtpExecutionMode mode, string method, string uri, string renameTo = null) { byte[] responseBody = Do(mode, method, uri, null, renameTo); // Should be no response Assert.Equal(responseBody.Length, 0); }
private static void DoUpload(FtpExecutionMode mode, string method, string uri, byte[] requestBody) { byte[] responseBody = Do(mode, method, uri, requestBody); // Should be no response Assert.Equal(responseBody.Length, 0); }
private static byte[] DoDownload(FtpExecutionMode mode, string method, string uri) { return Do(mode, method, uri, null); }
private static byte[] Do(FtpExecutionMode mode, string method, string uri, byte[] requestBody, string renameTo = null) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); request.EnableSsl = mode.UseSsl; request.UsePassive = mode.UsePassive; request.Method = method; if (renameTo != null) { request.RenameTo = renameTo; } MemoryStream requestMemStream = null; if (requestBody != null) { requestMemStream = new MemoryStream(requestBody); } if (mode.UseAsync) { try { Task<MemoryStream> t = DoAsync(request, requestMemStream); return t.Result.ToArray(); } catch (AggregateException e) { throw e.InnerException; } } else if (mode.UseOldStyleAsync) { return DoOldStyleAsync(request, requestMemStream).ToArray(); } else { return DoSync(request, requestMemStream).ToArray(); } }