public async Task Update_File_Contents()
        {
            var rnd  = new Random();
            var data = new byte[100];

            rnd.NextBytes(data);

            //Create a unique file name
            var fileName = Guid.NewGuid().ToString();

            //Upload a file
            var upload = _filesApi.CreateFile(fileName, _testFolder, data.Length, data);

            //Create new file data
            var newData = new byte[200];

            rnd.NextBytes(data);

            //Update file contents
            var updatedFile = _filesApi.UpdateFileContents(upload.Id, newData.Length, newData);

            Assert.AreEqual(200, updatedFile.Size);

            //Create buffer for download
            var downloadedFile = new byte[200];

            //Download file
            var wait = new WaitForVirusScan(_filesApi);

            (await wait.DownloadFileWithRetry(upload.Id)).Read(downloadedFile);

            Assert.AreEqual(newData, downloadedFile);
        }
Пример #2
0
        public async Task Create_Rename_Download_Delete_File()
        {
            var fileName = Guid.NewGuid().ToString();
            var rnd      = new Random();
            var data     = new byte[50];

            rnd.NextBytes(data);
            var create = _filesApi.CreateFile(fileName, "/SDK_Test_Folder", 50, data);

            Assert.That(create.Name, Is.EqualTo(fileName));
            Assert.That(create.Path, Is.EqualTo("/SDK_Test_Folder"));

            var newName    = Guid.NewGuid().ToString();
            var updateFile = new UpdateFile("/SDK_Test_Folder", newName);
            var update     = _filesApi.UpdateFileMetadata(create.Id, updateFile);

            Assert.That(update.Name, Is.EqualTo(newName));
            Assert.That(update.Path, Is.EqualTo("/SDK_Test_Folder"));
            Assert.That(update.Id, Is.EqualTo(create.Id));

            var wait     = new WaitForVirusScan(_filesApi);
            var download = await wait.DownloadFileWithRetry(update.Id);

            var endData = new byte[50];

            download.Read(endData);
            Assert.That(endData, Is.EqualTo(data));

            _filesApi.DeleteFile(update.Id);
            Assert.Throws <ApiException>(() => _filesApi.GetFile(create.Id));
        }
        public async Task Download_File_As_Stream()
        {
            var data = new MemoryStream(Encoding.UTF8.GetBytes("a,b \n c,d"));

            //Create a unique file name
            var fileName = Guid.NewGuid().ToString();

            //Upload a file
            var upload = await _filesApi.UploadAsStreamAsync(fileName, "/", (int)data.Length, data);

            //Download the file that was just uploaded
            var wait           = new WaitForVirusScan(_filesApi);
            var downloadedData = await wait.DownloadFileWithRetry(upload.Id);

            Assert.AreEqual(data, downloadedData);
        }
        public async Task Move_File_With_Overwrite()
        {
            var rnd   = new Random();
            var data1 = new byte[100];

            rnd.NextBytes(data1);

            //Create a unique file name
            var fileName = Guid.NewGuid().ToString();

            //Create a unique folder name
            var folderName = Guid.NewGuid().ToString();

            //Upload a file
            var upload = _filesApi.CreateFile(fileName, _testFolder, data1.Length, data1);

            //Create a folder
            var createFolder = new CreateFolder(_testFolder, folderName);
            var folder       = _foldersApi.CreateFolder(createFolder);

            var data2 = new byte[100];

            rnd.NextBytes(data2);

            //Upload the second file
            _filesApi.CreateFile(fileName, _testFolder + "/" + folder.Name, data2.Length, data2);

            //Move files to folder
            var movedFile = _foldersApi.MoveFolder(folder.Id, new List <string> {
                upload.Id
            }, true, true);

            var downloadedFile = new byte[100];
            var wait           = new WaitForVirusScan(_filesApi);
            var fileId         = movedFile.Values.Single(x => x.Name == upload.Name).Id;

            (await wait.DownloadFileWithRetry(fileId)).Read(downloadedFile);
            CollectionAssert.Contains(movedFile.Values.Select(x => x.Name), upload.Name);
            Assert.AreEqual(downloadedFile, data1);
            CollectionAssert.IsEmpty(_foldersApi.GetFolderContents(_testFolderId, filter: $"Name eq '{fileName}'").Values);
        }
        public async Task Download_File()
        {
            var rnd          = new Random();
            var uploadedFile = new byte[100];

            rnd.NextBytes(uploadedFile);

            //Create a unique file name
            var fileName = Guid.NewGuid().ToString();

            //Upload a file
            var upload = _filesApi.CreateFile(fileName, _testFolder, uploadedFile.Length, uploadedFile);

            //Create buffer for download
            var downloadedFile = new byte[100];

            //Download file
            var wait = new WaitForVirusScan(_filesApi);

            (await wait.DownloadFileWithRetry(upload.Id)).Read(downloadedFile);

            Assert.AreEqual(uploadedFile, downloadedFile);
        }