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 CreateFolder()
        {
            OneDriveResultWithData <OneDriveFolder> parentFolder = null;

            try
            {
                parentFolder = OneDriveUtility.CreateFolder(connection, TestData.FolderToDelete, null);
                Assert.IsTrue(parentFolder.IsSucceed);
                Assert.AreEqual(parentFolder.Data.Name, TestData.FolderToDelete);

                var childFolder = OneDriveUtility.CreateFolder(connection, TestData.FolderToDelete, parentFolder.Data.Id);
                Assert.IsNotNull(childFolder.IsSucceed);
            }
            finally
            {
                OneDriveUtility.DeleteResource(connection, parentFolder.Data.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);
                }
            }
        }