public void DeletePermissionTest()
        {
            OneDriveResultWithData <OneDriveFile> file = null;

            try
            {
                file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, testFolder.Id);

                var newPermissionResult = OneDriveUtility.CreateShareLink(connection, file.Data.Id, OneDriveShareType.View, OneDriveShareScope.Anonymous);

                var permissionsResult = OneDriveUtility.GetResourcePermissions(connection, file.Data.Id);

                var deleteResult = OneDriveUtility.DeleteResourcePermission(connection, file.Data.Id, newPermissionResult.Data.Id);
                Assert.IsTrue(deleteResult.IsSucceed);

                var newPermissionsResult = OneDriveUtility.GetResourcePermissions(connection, file.Data.Id);
                Assert.AreEqual(1, permissionsResult.Data.Length - newPermissionsResult.Data.Length);
            }
            finally
            {
                if (file?.Data != null)
                {
                    OneDriveUtility.DeleteResource(connection, file.Data.Id);
                }
            }
        }
        public void GetLongFileListTest()
        {
            const int           FILE_COUNT = 210;
            List <OneDriveFile> fileList   = new List <OneDriveFile>();

            try
            {
                for (int i = 0; i < FILE_COUNT; i++)
                {
                    var it = OneDriveUtility.UploadFile(connection, TestFileFullName, $"delete_me{i}", testFolder.Id);
                    Assert.IsTrue(it.IsSucceed);
                    fileList.Add(it.Data);
                }

                var fileListResult = OneDriveUtility.GetFiles(connection, testFolder.Id);
                Assert.IsTrue(fileListResult.IsSucceed);
                Assert.AreEqual(FILE_COUNT, fileListResult.Data.Length);
            }
            finally {
                foreach (OneDriveFile it in fileList)
                {
                    OneDriveUtility.DeleteResource(connection, it.Id);
                }
            }
        }
        public void GetPermisionTest()
        {
            OneDriveResultWithData <OneDriveFile> file = null;

            try
            {
                file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, testFolder.Id);

                var filePermissionsResult = OneDriveUtility.GetResourcePermissions(connection, file.Data.Id);
                Assert.IsTrue(filePermissionsResult.IsSucceed);

                var folderPermissionsResult = OneDriveUtility.GetResourcePermissions(connection, testFolder.Id);
                Assert.IsTrue(filePermissionsResult.IsSucceed);
            }
            finally
            {
                if (file?.Data != null)
                {
                    OneDriveUtility.DeleteResource(connection, file.Data.Id);
                }
            }
        }
        public void DownoadTest()
        {
            OneDriveResultWithData <OneDriveFile> file = null;
            string localFileName = TestFileFullName + "_";

            try
            {
                file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, null);
                Assert.IsTrue(file.IsSucceed);

                var result = OneDriveUtility.DownloadFile(connection, file.Data.Id, localFileName);
                Assert.IsTrue(result.IsSucceed);
            }
            finally
            {
                System.IO.File.Delete(localFileName);
                if (file != null && file.IsSucceed)
                {
                    OneDriveUtility.DeleteResource(connection, file.Data.Id);
                }
            }
        }
        public void ShareLinkTest()
        {
            OneDriveResultWithData <OneDriveFile> file = null;

            try
            {
                file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, testFolder.Id);

                var permissionsResult = OneDriveUtility.GetResourcePermissions(connection, file.Data.Id);
                Assert.IsTrue(permissionsResult.IsSucceed);

                var sharePermissionResults = new List <OneDriveResultWithData <OneDrivePermission> >();
                foreach (OneDriveShareType t in (OneDriveShareType[])Enum.GetValues(typeof(OneDriveShareType)))
                {
                    foreach (OneDriveShareScope s in (OneDriveShareScope[])Enum.GetValues(typeof(OneDriveShareScope)))
                    {
                        var r = OneDriveUtility.CreateShareLink(connection, file.Data.Id, t, s);
                        sharePermissionResults.Add(r);
                    }
                }

                var newPermissionsResult = OneDriveUtility.GetResourcePermissions(connection, file.Data.Id);
                Assert.IsTrue(newPermissionsResult.IsSucceed);
                Assert.IsTrue(newPermissionsResult.Data.Length > permissionsResult.Data.Length);

                foreach (OneDriveResultWithData <OneDrivePermission> r in sharePermissionResults)
                {
                    Assert.IsTrue(r.IsSucceed);
                }
            }
            finally
            {
                if (file != null && file.IsSucceed)
                {
                    OneDriveUtility.DeleteResource(connection, file.Data.Id);
                }
            }
        }
        public void UploadTest()
        {
            OneDriveResultWithData <OneDriveFile> fileInRoot = null, file = null;

            try
            {
                fileInRoot = OneDriveUtility.UploadFile(connection, TestFileFullName, null, null);
                Assert.IsTrue(fileInRoot.IsSucceed);

                file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, null);
                Assert.IsTrue(file.IsSucceed);
            }
            finally {
                if (fileInRoot?.Data != null)
                {
                    OneDriveUtility.DeleteResource(connection, fileInRoot.Data.Id);
                }
                if (file?.Data != null)
                {
                    OneDriveUtility.DeleteResource(connection, file.Data.Id);
                }
            }
        }
        public void DoesExist()
        {
            try
            {
                var file = OneDriveUtility.UploadFile(connection, TestFileFullName, null, testFolder.Id);

                var fileRes = OneDriveUtility.DoesResourceExist(connection, file.Data.Id);
                Assert.AreEqual(OneDriveResourceType.File, fileRes.Data);

                var folderRes = OneDriveUtility.DoesResourceExist(connection, testFolder.Id);
                Assert.AreEqual(OneDriveResourceType.Folder, folderRes.Data);

                OneDriveUtility.DeleteResource(connection, file.Data.Id);
                var invalidFolderRes = OneDriveUtility.DoesResourceExist(connection, file.Data.Id);
                Assert.AreEqual(OneDriveResourceType.Unavailable, invalidFolderRes.Data);

                var incorrectIdResult = OneDriveUtility.DoesResourceExist(connection, "incorrectId");
                Assert.AreEqual(OneDriveResourceType.Unavailable, incorrectIdResult.Data);
            }
            finally
            {
            }
        }