UploadData() публичный Метод

public UploadData ( string remotePath, byte data ) : byte[]
remotePath string
data byte
Результат byte[]
Пример #1
0
Файл: test.cs Проект: mono/gert
		static int Main ()
		{
			if (Environment.GetEnvironmentVariable ("MONO_TESTS_FTP") == null)
				return 0;

			BasicFTPClient client = new BasicFTPClient ();

			byte [] send;
			byte [] receive;
			string tmpDir = Path.Combine (AppDomain.CurrentDomain.BaseDirectory,
				"temp");
			Directory.CreateDirectory (tmpDir);

			try {
				send = Encoding.UTF8.GetBytes ("Mono Webclient FTP 1");
				receive = client.UploadData ("bug478451-1", send);
				Assert.IsNotNull (receive, "#A1");
				Assert.AreEqual (0, receive.Length, "#A2");
				receive = client.DownloadData ("bug478451-1");
				Assert.IsNotNull (receive, "#A3");
				Assert.AreEqual (send, receive, "#A4");

				using (StreamWriter sw = new StreamWriter (Path.Combine (tmpDir, "bug478451-2"), false, Encoding.UTF8)) {
					sw.Write ("Mono Webclient FTP 2");
				}

				client.UploadFile ("bug478451-2", Path.Combine (tmpDir, "bug478451-2"));
				client.DownloadFile ("bug478451-2", Path.Combine (tmpDir, "bug478451-2-receive"));

				using (StreamReader sr = new StreamReader (Path.Combine (tmpDir, "bug478451-2-receive"), Encoding.UTF8)) {
					Assert.AreEqual ("Mono Webclient FTP 2", sr.ReadToEnd (), "#B");
				}

				// upload zero-length data
				receive = client.UploadData ("bug478451-3", new byte [0]);
				Assert.IsNotNull (receive, "#C1");
				Assert.AreEqual (0, receive.Length, "#C2");
				receive = client.DownloadData ("bug478451-3");
				Assert.IsNotNull (receive, "#C3");
				Assert.AreEqual (0, receive.Length, "#C4");

				// upload data -remote dir does not exist
				try {
					receive = client.UploadData ("doesnotexist/bug478451-4",
						new byte [0]);
					Assert.Fail ("#D1");
				} catch (WebException ex) {
					Assert.IsNotNull (ex.Response, "#D2");
					Assert.AreEqual (WebExceptionStatus.ProtocolError, ex.Status, "#D3");

					FtpWebResponse response = ex.Response as FtpWebResponse;
					Assert.IsNotNull (response, "#D4");
					Assert.AreEqual (FtpStatusCode.ActionNotTakenFileUnavailable, response.StatusCode, "#D5");
				}

				// upload file -remote dir does not exist
				try {
					receive = client.UploadFile ("doesnotexist/bug478451-5",
						Path.Combine (tmpDir, "bug478451-2"));
					Assert.Fail ("#E1");
				} catch (WebException ex) {
					Assert.IsNotNull (ex.Response, "#E2");
					Assert.AreEqual (WebExceptionStatus.ProtocolError, ex.Status, "#E3");

					FtpWebResponse response = ex.Response as FtpWebResponse;
					Assert.IsNotNull (response, "#E4");
					Assert.AreEqual (FtpStatusCode.ActionNotTakenFileUnavailable, response.StatusCode, "#E5");
				}

				// download file - file does not exist
				try {
					receive = client.DownloadData ("doesnotexist");
					Assert.Fail ("#F1");
				} catch (WebException ex) {
					Assert.IsNotNull (ex.Response, "#F2");
					Assert.AreEqual (WebExceptionStatus.ProtocolError, ex.Status, "#F3");

					FtpWebResponse response = ex.Response as FtpWebResponse;
					Assert.IsNotNull (response, "#F4");
					Assert.AreEqual (FtpStatusCode.ActionNotTakenFileUnavailable, response.StatusCode, "#F5");
				}

				// download file - file does not exist
				try {
					client.DownloadFile ("doesnotexist",
						Path.Combine (tmpDir, "bug478451-7-receive"));
					Assert.Fail ("#G1");
				} catch (WebException ex) {
					Assert.IsNotNull (ex.Response, "#G2");
					Assert.AreEqual (WebExceptionStatus.ProtocolError, ex.Status, "#G3");

					FtpWebResponse response = ex.Response as FtpWebResponse;
					Assert.IsNotNull (response, "#G4");
					Assert.AreEqual (FtpStatusCode.ActionNotTakenFileUnavailable, response.StatusCode, "#G5");

					Assert.IsFalse (File.Exists (Path.Combine (tmpDir, "bug478451-7-receive")), "#G6");
				}

				return 0;
			} finally {
				client.DeleteFile ("bug478451-1");
				client.DeleteFile ("bug478451-2");
				client.DeleteFile ("bug478451-3");
				Directory.Delete (tmpDir, true);
			}
		}