public async Task CreateDictionaryTest() { var httpClientTest = new TestHttpClient( methodName: "PUT", url: TestHttpClient.BaseUrl + "resources?path=/foo", httpStatusCode: HttpStatusCode.OK, result: @" { ""href"": ""https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2FMusic"", ""method"": ""GET"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Commands.CreateDictionaryAsync("/foo", CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2FMusic", result.Href); Assert.AreEqual("GET", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task GetDownloadLinkTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "resources/download?path=/file.txt", httpStatusCode: HttpStatusCode.OK, result: @" { ""href"": ""https://downloader.dst.yandex.ru/disk/..."", ""method"": ""GET"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Files.GetDownloadLinkAsync("/file.txt", CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://downloader.dst.yandex.ru/disk/...", result.Href); Assert.AreEqual("GET", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task GetDiskInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "", httpStatusCode: HttpStatusCode.OK, result: @" { ""trash_size"": 4631577437, ""total_space"": 319975063552, ""used_space"": 26157681270, ""system_folders"": { ""applications"": ""disk:/Приложения"", ""downloads"": ""disk:/Загрузки/"" } } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Disk result = await diskClient.MetaInfo.GetDiskInfoAsync(CancellationToken.None); Assert.NotNull(result); Assert.AreEqual(319975063552L, result.TotalSpace); Assert.AreEqual(4631577437L, result.TrashSize); Assert.AreEqual(26157681270L, result.UsedSpace); Assert.NotNull(result.SystemFolders); Assert.AreEqual("disk:/Приложения", result.SystemFolders.Applications); Assert.AreEqual("disk:/Загрузки/", result.SystemFolders.Downloads); }
public async Task GetUploadLinkTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "resources/upload?path=/&overwrite=true", httpStatusCode: HttpStatusCode.OK, result: @" { ""href"": ""https://uploader1d.dst.yandex.net:443/upload-target/..."", ""method"": ""PUT"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Files.GetUploadLinkAsync("/", true, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://uploader1d.dst.yandex.net:443/upload-target/...", result.Href); Assert.AreEqual("PUT", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task MoveTest() { var httpClientTest = new TestHttpClient( methodName: "POST", url: TestHttpClient.BaseUrl + "resources/move?from=/foo&path=/baz&overwrite=true", httpStatusCode: HttpStatusCode.Accepted, result: @" { ""href"": ""https://cloud-api.yandex.net/v1/disk/operations?id=33ca7d03ab21ct41b4a40182e78d828a3f8b72cdb5f4c0e94cc4b1449a63a2fe"", ""method"": ""GET"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Commands.MoveAsync(new MoveFileRequest { From = "/foo", Path = "/baz", Overwrite = true }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://cloud-api.yandex.net/v1/disk/operations?id=33ca7d03ab21ct41b4a40182e78d828a3f8b72cdb5f4c0e94cc4b1449a63a2fe", result.Href); Assert.AreEqual("GET", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task UploadTest() { var link = new Link { Href = "https://uploader1d.dst.yandex.net/upload-target/", Method = "PUT", Templated = false }; var httpClientTest = new TestHttpClient( methodName: link.Method, url: link.Href, httpStatusCode: HttpStatusCode.Created, result: @""); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); await diskClient.Files.UploadAsync(link, new MemoryStream(), CancellationToken.None).ConfigureAwait(false); }
public async Task GetOperationStatusTest_InProgress() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "operations/d80c269ce4eb16c0207f0a15t4a31415313452f9e950cd9576f36b1146ee0e42", httpStatusCode: HttpStatusCode.OK, result: @" { ""status"":""in-progress"" } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Operation result = await diskClient.Commands.GetOperationStatus(new Link { Href = TestHttpClient.BaseUrl + "operations/d80c269ce4eb16c0207f0a15t4a31415313452f9e950cd9576f36b1146ee0e42", Method = "GET" }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual(OperationStatus.InProgress, result.Status); }
public async Task RestoreFromTrashTest() { var httpClientTest = new TestHttpClient( methodName: "PUT", url: TestHttpClient.BaseUrl + "trash/resources?path=/foo&name=baz&overwrite=false", httpStatusCode: HttpStatusCode.OK, result: @" { ""href"": ""https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Fbar%2Fselfie.png"", ""method"": ""GET"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Commands.RestoreFromTrashAsync(new RestoreFromTrashRequest { Path = "/foo", Name = "baz" }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Fbar%2Fselfie.png", result.Href); Assert.AreEqual("GET", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task AppendCustomPropertiesTest() { var httpClientTest = new TestHttpClient( methodName: "PATCH", url: TestHttpClient.BaseUrl + @"resources?path=/foo", httpStatusCode: HttpStatusCode.OK, request: @"{""custom_properties"":{""foo"":""1"",""bar"":""2""}}", result: @" { ""public_key"": ""HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8="", ""_embedded"": { ""sort"": """", ""path"": ""disk:/foo"", ""items"": [ { ""path"": ""disk:/foo/bar"", ""type"": ""dir"", ""name"": ""bar"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""created"": ""2014-04-22T10:32:49+04:00"" }, { ""name"": ""photo.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, ""offset"": 0 }, ""name"": ""foo"", ""created"": ""2014-04-21T14:54:42+04:00"", ""custom_properties"": {""foo"":""1"", ""bar"":""2""}, ""public_url"": ""https://yadi.sk/d/2AEJCiNTZGiYX"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""path"": ""disk:/foo"", ""type"": ""dir"" } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Resource result = await diskClient.MetaInfo.AppendCustomProperties("/foo", new Dictionary <string, string> { { "foo", "1" }, { "bar", "2" } }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.IsNotEmpty(result.CustomProperties); Assert.AreEqual("1", result.CustomProperties["foo"]); Assert.AreEqual("2", result.CustomProperties["bar"]); }
public async Task GetInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "resources?sort=name&path=/&limit=20&offset=0", httpStatusCode: HttpStatusCode.OK, result: @" { ""public_key"": ""HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8="", ""_embedded"": { ""sort"": """", ""path"": ""disk:/foo"", ""items"": [ { ""path"": ""disk:/foo/bar"", ""type"": ""dir"", ""name"": ""bar"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""created"": ""2014-04-22T10:32:49+04:00"" }, { ""name"": ""photo.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, ""offset"": 0 }, ""name"": ""foo"", ""created"": ""2014-04-21T14:54:42+04:00"", ""custom_properties"": {""foo"":""1"", ""bar"":""2""}, ""public_url"": ""https://yadi.sk/d/2AEJCiNTZGiYX"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""path"": ""disk:/foo"", ""type"": ""dir"" } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Resource result = await diskClient.MetaInfo.GetInfoAsync(new ResourceRequest { Path = "/", Limit = 20, Offset = 0, Sort = "name" }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8=", result.PublicKey); Assert.AreEqual("disk:/foo", result.Path); Assert.NotNull(result.Embedded); Assert.AreEqual("", result.Embedded.Sort); Assert.AreEqual("disk:/foo", result.Embedded.Path); Assert.IsNotEmpty(result.Embedded.Items); Assert.AreEqual(2, result.Embedded.Items.Count); Resource firstItem = result.Embedded.Items[0]; Assert.NotNull(firstItem); Assert.AreEqual("disk:/foo/bar", firstItem.Path); Assert.AreEqual(ResourceType.Dir, firstItem.Type); Assert.AreEqual("bar", firstItem.Name); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), firstItem.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), firstItem.Modified); Resource secondItem = result.Embedded.Items[1]; Assert.NotNull(secondItem); Assert.AreEqual("photo.png", secondItem.Name); Assert.AreEqual("disk:/foo/photo.png", secondItem.Path); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", secondItem.Preview); Assert.AreEqual(ResourceType.File, secondItem.Type); Assert.AreEqual("4334dc6379c8f95ddf11b9508cfea271", secondItem.Md5); Assert.AreEqual("image/png", secondItem.MimeType); Assert.AreEqual(34567, secondItem.Size); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 13, DateTimeKind.Local), secondItem.Created); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 14, DateTimeKind.Local), secondItem.Modified); Assert.AreEqual("foo", result.Name); //Assert.AreEqual("custom_properties", result.CustomProperties); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 54, 42, DateTimeKind.Local), result.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), result.Modified); Assert.AreEqual("disk:/foo", result.Path); Assert.AreEqual(ResourceType.Dir, result.Type); //ToDo: Check undefined properties }
public async Task EmptyTrashTest() { var httpClientTest = new TestHttpClient( methodName: "DELETE", url: TestHttpClient.BaseUrl + "trash/resources?path=/foo", httpStatusCode: HttpStatusCode.Accepted, result: @" { ""href"": ""https://cloud-api.yandex.net/v1/disk/operations?id=d80c269ce4eb16c0207f0a15t4a31415313452f9e950cd9576f36b1146ee0e42"", ""method"": ""GET"", ""templated"": false } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Link result = await diskClient.Commands.EmptyTrashAsync(path: "/foo", cancellationToken: CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual("https://cloud-api.yandex.net/v1/disk/operations?id=d80c269ce4eb16c0207f0a15t4a31415313452f9e950cd9576f36b1146ee0e42", result.Href); Assert.AreEqual("GET", result.Method); Assert.AreEqual(false, result.Templated); }
public async Task GetInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "resources?sort=name&path=/&limit=20&offset=0", httpStatusCode: HttpStatusCode.OK, result: @" { ""public_key"": ""HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8="", ""_embedded"": { ""sort"": """", ""path"": ""disk:/foo"", ""items"": [ { ""path"": ""disk:/foo/bar"", ""type"": ""dir"", ""name"": ""bar"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""created"": ""2014-04-22T10:32:49+04:00"" }, { ""name"": ""photo.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, ""offset"": 0 }, ""name"": ""foo"", ""created"": ""2014-04-21T14:54:42+04:00"", ""custom_properties"": {""foo"":""1"", ""bar"":""2""}, ""public_url"": ""https://yadi.sk/d/2AEJCiNTZGiYX"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""path"": ""disk:/foo"", ""type"": ""dir"" } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Resource result = await diskClient.MetaInfo.GetInfoAsync(new ResourceRequest { Path = "/", Limit = 20, Offset = 0, Sort = "name" }, CancellationToken.None); Assert.NotNull(result); Assert.AreEqual("HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8=", result.PublicKey); Assert.AreEqual("disk:/foo", result.Path); Assert.NotNull(result.Embedded); Assert.AreEqual("", result.Embedded.Sort); Assert.AreEqual("disk:/foo", result.Embedded.Path); Assert.IsNotEmpty(result.Embedded.Items); Assert.AreEqual(2, result.Embedded.Items.Count); Resource firstItem = result.Embedded.Items[0]; Assert.NotNull(firstItem); Assert.AreEqual("disk:/foo/bar", firstItem.Path); Assert.AreEqual(ResourceType.Dir, firstItem.Type); Assert.AreEqual("bar", firstItem.Name); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), firstItem.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), firstItem.Modified); Resource secondItem = result.Embedded.Items[1]; Assert.NotNull(secondItem); Assert.AreEqual("photo.png", secondItem.Name); Assert.AreEqual("disk:/foo/photo.png", secondItem.Path); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", secondItem.Preview); Assert.AreEqual(ResourceType.File, secondItem.Type); Assert.AreEqual("4334dc6379c8f95ddf11b9508cfea271", secondItem.Md5); Assert.AreEqual("image/png", secondItem.MimeType); Assert.AreEqual(34567, secondItem.Size); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 13, DateTimeKind.Local), secondItem.Created); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 14, DateTimeKind.Local), secondItem.Modified); Assert.AreEqual("foo", result.Name); //Assert.AreEqual("custom_properties", result.CustomProperties); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 54, 42, DateTimeKind.Local), result.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 10, 32, 49, DateTimeKind.Local), result.Modified); Assert.AreEqual("disk:/foo", result.Path); Assert.AreEqual(ResourceType.Dir, result.Type); //ToDo: Check undefined properties }
public async Task GetLastUploadedInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + @"resources/last-uploaded?media_type=""audio,executable""&limit=20", httpStatusCode: HttpStatusCode.OK, result: @" { ""items"": [ { ""name"": ""photo2.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-22T14:57:13+04:00"", ""modified"": ""2014-04-22T14:57:14+04:00"", ""path"": ""disk:/foo/photo2.png"", ""md5"": ""53f4dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 54321 }, { ""name"": ""photo1.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo1.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); LastUploadedResourceList result = await diskClient.MetaInfo.GetLastUploadedInfoAsync(new LastUploadedResourceRequest { Limit = 20, MediaType = new[] { MediaType.Audio, MediaType.Executable } }, CancellationToken.None).ConfigureAwait(false); Assert.NotNull(result); Assert.AreEqual(20, result.Limit); Assert.IsNotEmpty(result.Items); Assert.AreEqual(2, result.Items.Count); var firstItem = result.Items[0]; Assert.AreEqual("photo2.png", firstItem.Name); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", firstItem.Preview); Assert.AreEqual("disk:/foo/photo2.png", firstItem.Path); Assert.AreEqual(ResourceType.File, firstItem.Type); Assert.AreEqual("53f4dc6379c8f95ddf11b9508cfea271", firstItem.Md5); Assert.AreEqual("image/png", firstItem.MimeType); Assert.AreEqual(54321, firstItem.Size); Assert.AreEqual(new DateTime(2014, 04, 22, 14, 57, 13, DateTimeKind.Local), firstItem.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 14, 57, 14, DateTimeKind.Local), firstItem.Modified); var secondItem = result.Items[1]; Assert.AreEqual("photo1.png", secondItem.Name); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", secondItem.Preview); Assert.AreEqual("disk:/foo/photo1.png", secondItem.Path); Assert.AreEqual(ResourceType.File, secondItem.Type); Assert.AreEqual("4334dc6379c8f95ddf11b9508cfea271", secondItem.Md5); Assert.AreEqual("image/png", secondItem.MimeType); Assert.AreEqual(34567, secondItem.Size); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 13, DateTimeKind.Local), secondItem.Created); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 14, DateTimeKind.Local), secondItem.Modified); }
public async Task AppendCustomPropertiesTest() { var httpClientTest = new TestHttpClient( methodName: "PATCH", url: TestHttpClient.BaseUrl + @"resources?path=/foo", httpStatusCode: HttpStatusCode.OK, request: @"{""custom_properties"":{""foo"":""1"",""bar"":""2""}}", result: @" { ""public_key"": ""HQsmHLoeyBlJf8Eu1jlmzuU+ZaLkjPkgcvmokRUCIo8="", ""_embedded"": { ""sort"": """", ""path"": ""disk:/foo"", ""items"": [ { ""path"": ""disk:/foo/bar"", ""type"": ""dir"", ""name"": ""bar"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""created"": ""2014-04-22T10:32:49+04:00"" }, { ""name"": ""photo.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, ""offset"": 0 }, ""name"": ""foo"", ""created"": ""2014-04-21T14:54:42+04:00"", ""custom_properties"": {""foo"":""1"", ""bar"":""2""}, ""public_url"": ""https://yadi.sk/d/2AEJCiNTZGiYX"", ""modified"": ""2014-04-22T10:32:49+04:00"", ""path"": ""disk:/foo"", ""type"": ""dir"" } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Resource result = await diskClient.MetaInfo.AppendCustomProperties("/foo", new Dictionary<string, string> { { "foo", "1" }, { "bar", "2" } }, CancellationToken.None); Assert.NotNull(result); Assert.IsNotEmpty(result.CustomProperties); Assert.AreEqual("1", result.CustomProperties["foo"]); Assert.AreEqual("2", result.CustomProperties["bar"]); }
public async Task GetTrashInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + "trash/resources?path=/foo/cat.png&limit=30&offset=50", httpStatusCode: HttpStatusCode.OK, result: @" { ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""name"": ""cat.png"", ""created"": ""2014-07-16T13:07:45+04:00"", ""custom_properties"": {""foo"":""1"", ""bar"":""2""}, ""origin_path"": ""disk:/foo/cat.png"", ""modified"": ""2014-07-16T13:07:45+04:00"", ""path"": ""trash:/cat.png"", ""md5"": ""02bab05c02537e53dedd408261e0aadf"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 903337 }, "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Resource result = await diskClient.MetaInfo.GetTrashInfoAsync(new ResourceRequest { Path = "/foo/cat.png", Limit = 30, Offset = 50 }, CancellationToken.None); Assert.NotNull(result); Assert.AreEqual("cat.png", result.Name); Assert.AreEqual("trash:/cat.png", result.Path); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", result.Preview); //Assert.AreEqual("custom_properties", result.CustomProperties); Assert.AreEqual("disk:/foo/cat.png", result.OriginPath); Assert.AreEqual(ResourceType.File, result.Type); Assert.AreEqual("02bab05c02537e53dedd408261e0aadf", result.Md5); Assert.AreEqual("image/png", result.MimeType); Assert.AreEqual(903337, result.Size); Assert.AreEqual(new DateTime(2014, 07, 16, 13, 07, 45, DateTimeKind.Local), result.Created); Assert.AreEqual(new DateTime(2014, 07, 16, 13, 07, 45, DateTimeKind.Local), result.Modified); }
public async Task GetLastUploadedInfoTest() { var httpClientTest = new TestHttpClient( methodName: "GET", url: TestHttpClient.BaseUrl + @"resources/last-uploaded?media_type=""audio,executable""&limit=20", httpStatusCode: HttpStatusCode.OK, result: @" { ""items"": [ { ""name"": ""photo2.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-22T14:57:13+04:00"", ""modified"": ""2014-04-22T14:57:14+04:00"", ""path"": ""disk:/foo/photo2.png"", ""md5"": ""53f4dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 54321 }, { ""name"": ""photo1.png"", ""preview"": ""https://downloader.disk.yandex.ru/preview/..."", ""created"": ""2014-04-21T14:57:13+04:00"", ""modified"": ""2014-04-21T14:57:14+04:00"", ""path"": ""disk:/foo/photo1.png"", ""md5"": ""4334dc6379c8f95ddf11b9508cfea271"", ""type"": ""file"", ""mime_type"": ""image/png"", ""size"": 34567 } ], ""limit"": 20, } "); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); LastUploadedResourceList result = await diskClient.MetaInfo.GetLastUploadedInfoAsync(new LastUploadedResourceRequest { Limit = 20, MediaType = new[] { MediaType.Audio, MediaType.Executable } }, CancellationToken.None); Assert.NotNull(result); Assert.AreEqual(20, result.Limit); Assert.IsNotEmpty(result.Items); Assert.AreEqual(2, result.Items.Count); var firstItem = result.Items[0]; Assert.AreEqual("photo2.png", firstItem.Name); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", firstItem.Preview); Assert.AreEqual("disk:/foo/photo2.png", firstItem.Path); Assert.AreEqual(ResourceType.File, firstItem.Type); Assert.AreEqual("53f4dc6379c8f95ddf11b9508cfea271", firstItem.Md5); Assert.AreEqual("image/png", firstItem.MimeType); Assert.AreEqual(54321, firstItem.Size); Assert.AreEqual(new DateTime(2014, 04, 22, 14, 57, 13, DateTimeKind.Local), firstItem.Created); Assert.AreEqual(new DateTime(2014, 04, 22, 14, 57, 14, DateTimeKind.Local), firstItem.Modified); var secondItem = result.Items[1]; Assert.AreEqual("photo1.png", secondItem.Name); Assert.AreEqual("https://downloader.disk.yandex.ru/preview/...", secondItem.Preview); Assert.AreEqual("disk:/foo/photo1.png", secondItem.Path); Assert.AreEqual(ResourceType.File, secondItem.Type); Assert.AreEqual("4334dc6379c8f95ddf11b9508cfea271", secondItem.Md5); Assert.AreEqual("image/png", secondItem.MimeType); Assert.AreEqual(34567, secondItem.Size); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 13, DateTimeKind.Local), secondItem.Created); Assert.AreEqual(new DateTime(2014, 04, 21, 14, 57, 14, DateTimeKind.Local), secondItem.Modified); }
public async Task DownloadTest() { var link = new Link { Href = "https://downloader.dst.yandex.ru/disk/", Method = "GET", Templated = false }; var httpClientTest = new TestHttpClient( methodName: link.Method, url: link.Href, httpStatusCode: HttpStatusCode.Created, result: @"Test file content"); var diskClient = new DiskHttpApi(TestHttpClient.BaseUrl, TestHttpClient.ApiKey, logSaver: null, httpClient: httpClientTest); Stream stream = await diskClient.Files.DownloadAsync(link, CancellationToken.None).ConfigureAwait(false); var content = new StreamReader(stream).ReadToEnd(); Assert.AreEqual(@"Test file content", content); }