public void WhenFileExistsOnOneDriveShouldReturnTrue() { var sut = new OneDriveFileFinder(); const string hash = "7940B926DE86F962FFF45416FBF89983DEC10335"; Assert.AreEqual(hash, sut.FindFileOnOneDrive(hash, ReadTestAccessToken()).Result?.FileHash); }
public void WhenUpdatingFileCacheForDynamicTestDataDirShouldRemoveDeletedFiles() { var sut = new OneDriveFileFinder(); var deltaLinkService = new OneDriveFileFinder.DeltaLinkService(); string accessToken = ReadTestAccessToken(); // This file will be deleted: var oldFile = UploadStringAsFile(accessToken, "1F56D0165ED3C523%211021348", "test-old.txt", "Hello, World! I'm old"); // This file will stay: var oldFile2 = UploadStringAsFile(accessToken, "1F56D0165ED3C523%211021348", "test-old2.txt", "Hello, World! I'm old"); var files = sut.BuildFileCache("items/1F56D0165ED3C523%211021348", accessToken, deltaLinkService).ToList(); Assert.AreEqual(2, files.Count); Assert.IsNotNull(deltaLinkService.deltaLink); var newFile = UploadStringAsFile(accessToken, "1F56D0165ED3C523%211021348", "test.txt", "Hello, World!"); DeleteFile(accessToken, oldFile.id); var newFiles = sut.BuildFileCache("items/1F56D0165ED3C523%211021348", accessToken, deltaLinkService).ToList(); DeleteFile(accessToken, newFile.id); DeleteFile(accessToken, oldFile2.id); var addedFilesList = (from addedFiles in newFiles where addedFiles.Type == OneDriveFileFinder.FileCacheItemType.Added select addedFiles).ToList(); var deletedFilesList = (from deletedFiles in newFiles where deletedFiles.Type == OneDriveFileFinder.FileCacheItemType.Deleted select deletedFiles).ToList(); Assert.AreEqual(1, addedFilesList.Count); Assert.AreEqual(1, deletedFilesList.Count); Assert.AreEqual(0, addedFilesList.FindIndex((item) => item.Id == newFile.id)); Assert.AreEqual(0, deletedFilesList.FindIndex((item) => item.Id == oldFile.id)); }
public void WhenBuildingFileCacheForTestDataDirShouldReturn1998FilesAndDeltaLink() { var sut = new OneDriveFileFinder(); var deltaLinkService = new OneDriveFileFinder.DeltaLinkService(); var folders = sut.BuildFileCache("items/1F56D0165ED3C523%211018262", ReadTestAccessToken(), deltaLinkService).ToList(); Assert.AreEqual(2004, folders.Count); Assert.IsNotNull(deltaLinkService.deltaLink); }
public void WhenParsingResultShouldReadFileNameAndSizeAndHashes() { var sut = OneDriveFileFinder.ParseResult(@" { ""@odata.context"": ""https://graph.microsoft.com/v1.0/$metadata#users('d.albuschat%40gmail.com')/drive/root/$entity"", ""createdBy"": { ""user"": { ""displayName"": ""Daniel Albuschat"", ""id"": ""1f56d0165ed3c523"" } }, ""createdDateTime"": ""2012-08-05T14:58:35.96Z"", ""cTag"": ""adDoxRjU2RDAxNjVFRDNDNTIzITI2MS42MzY0NTQ2NDA2ODUyMzAwMDA"", ""eTag"": ""aMUY1NkQwMTY1RUQzQzUyMyEyNjEuMw"", ""id"": ""1F56D0165ED3C523!261"", ""lastModifiedBy"": { ""application"": { ""displayName"": ""OneDrive website"", ""id"": ""44048800"" }, ""user"": { ""displayName"": ""Daniel Albuschat"", ""id"": ""1f56d0165ed3c523"" } }, ""lastModifiedDateTime"": ""2017-11-05T07:34:28.523Z"", ""name"": ""root"", ""parentReference"": { ""driveId"": ""1f56d0165ed3c523"" }, ""size"": 266077658681, ""webUrl"": ""https://onedrive.live.com/?cid=1f56d0165ed3c523"", ""fileSystemInfo"": { ""createdDateTime"": ""2012-08-05T14:58:35.96Z"", ""lastModifiedDateTime"": ""2015-04-28T05:51:38.857Z"" }, ""folder"": { ""childCount"": 13, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } }, ""root"": { }, ""*****@*****.**"": ""https://graph.microsoft.com/v1.0/$metadata#users('d.albuschat%40gmail.com')/drive/root/children"", ""children"": [ { ""id"": ""1F56D0165ED3C523!983221"", ""name"": ""Anwendungen"", ""size"": 113642572, ""folder"": { ""childCount"": 1, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!262"", ""name"": ""Bilder"", ""size"": 245574291607, ""folder"": { ""childCount"": 13, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""takenOrCreatedDateTime"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!264"", ""name"": ""Dokumente"", ""size"": 1231665789, ""folder"": { ""childCount"": 20, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!1006059"", ""name"": ""E-Mail-Anhänge"", ""size"": 0, ""folder"": { ""childCount"": 0, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!989941"", ""name"": ""Enpass"", ""size"": 159744, ""folder"": { ""childCount"": 1, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!22111"", ""name"": ""Musik"", ""size"": 19101867096, ""folder"": { ""childCount"": 98, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!263"", ""name"": ""Öffentlich"", ""size"": 6484067, ""folder"": { ""childCount"": 3, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!1002779"", ""name"": ""Rappelkiste"", ""size"": 37665459, ""folder"": { ""childCount"": 6, ""view"": { ""viewType"": ""thumbnails"", ""sortBy"": ""name"", ""sortOrder"": ""ascending"" } } }, { ""id"": ""1F56D0165ED3C523!538627"", ""name"": ""checklist web tool design.pdf"", ""size"": 318239, ""file"": { ""hashes"": { ""crc32Hash"": ""40DD5AED"", ""sha1Hash"": ""7940B926DE86F962FFF45416FBF89983DEC10335"" }, ""mimeType"": ""application/pdf"" } }, { ""id"": ""1F56D0165ED3C523!190548"", ""name"": ""Einladungen Geburtstag 2015.xlsx"", ""size"": 9872, ""file"": { ""hashes"": { ""crc32Hash"": ""3DEB1137"", ""sha1Hash"": ""0E50C4C4BD9C436044F7F1E8A1313769697AA142"" }, ""mimeType"": ""application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"" } }, { ""id"": ""1F56D0165ED3C523!1015508"", ""name"": ""KNX Bestellliste Ringstraße 6a.xlsx"", ""size"": 9227, ""file"": { ""hashes"": { ""sha1Hash"": ""04E9DA58F724CE6940FAD967AFA753EF0C9E0AFD"" }, ""mimeType"": ""application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"" } }, { ""id"": ""1F56D0165ED3C523!888918"", ""name"": ""Kosten Auto Mazda 6.xlsx"", ""size"": 10215, ""file"": { ""hashes"": { ""crc32Hash"": ""1EAFFB4E"", ""sha1Hash"": ""C1FE5FE8F79CA60B7A0C4A6F73AF9527EF9F19B5"" }, ""mimeType"": ""application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"" } }, { ""id"": ""1F56D0165ED3C523!1017413"", ""name"": ""x1-app(1).apk"", ""size"": 11534794, ""file"": { ""hashes"": { ""sha1Hash"": ""64177F899C1E9972EA26BF1A57F16D7B9E5817C8"" }, ""mimeType"": ""application/vnd.android.package-archive"" } } ] } "); /* * var file = sut.children.Find((item) => item.file?.hashes?.sha1Hash == "7940B926DE86F962FFF45416FBF89983DEC10335"); * Assert.IsNotNull(file); * if (file != null) * { * Assert.AreEqual(file.name, "checklist web tool design.pdf"); * Assert.AreEqual(file.file.hashes.sha1Hash, "7940B926DE86F962FFF45416FBF89983DEC10335"); * Assert.AreEqual(file.size, 318239ul); * } */ }