2020-12-29 16:45:18 +00:00
|
|
|
|
using System.Threading;
|
|
|
|
|
|
2020-12-01 14:09:50 +00:00
|
|
|
|
using ASC.Api.Documents;
|
2020-09-17 14:56:51 +00:00
|
|
|
|
using ASC.Files.Core;
|
2020-09-18 13:26:30 +00:00
|
|
|
|
using ASC.Files.Tests.Infrastructure;
|
2020-09-10 10:50:35 +00:00
|
|
|
|
using ASC.Web.Files.Services.WCFService.FileOperations;
|
2020-12-01 01:11:05 +00:00
|
|
|
|
|
2020-09-10 10:50:35 +00:00
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
2020-09-16 13:19:08 +00:00
|
|
|
|
namespace ASC.Files.Tests
|
2020-09-10 10:50:35 +00:00
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
2020-11-19 02:53:50 +00:00
|
|
|
|
|
|
|
|
|
public class MyDocuments : BaseFilesTests
|
2020-09-10 10:50:35 +00:00
|
|
|
|
{
|
2020-11-19 02:53:50 +00:00
|
|
|
|
private FolderWrapper<int> TestFolder { get; set; }
|
2020-12-09 21:06:16 +00:00
|
|
|
|
private FolderWrapper<int> TestFolderNotEmpty { get; set; }
|
2020-11-19 02:53:50 +00:00
|
|
|
|
private FileWrapper<int> TestFile { get; set; }
|
|
|
|
|
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[OneTimeSetUp]
|
2020-09-15 13:24:44 +00:00
|
|
|
|
public override void SetUp()
|
2020-09-10 10:50:35 +00:00
|
|
|
|
{
|
2020-09-15 13:24:44 +00:00
|
|
|
|
base.SetUp();
|
2020-12-01 14:09:50 +00:00
|
|
|
|
|
2020-11-19 02:53:50 +00:00
|
|
|
|
TestFolder = FilesControllerHelper.CreateFolder(GlobalFolderHelper.FolderMy, "TestFolder");
|
2020-12-09 21:06:16 +00:00
|
|
|
|
TestFolderNotEmpty = FilesControllerHelper.CreateFolder(GlobalFolderHelper.FolderMy, "TestFolderNotEmpty");
|
|
|
|
|
FilesControllerHelper.CreateFile(TestFolderNotEmpty.Id, "TestFileToContentInTestFolder", default);
|
|
|
|
|
FilesControllerHelper.CreateFolder(TestFolderNotEmpty.Id, "TestFolderToContentInTestFolder");
|
2020-11-26 17:30:57 +00:00
|
|
|
|
TestFile = FilesControllerHelper.CreateFile(GlobalFolderHelper.FolderMy, "TestFile", default);
|
2020-11-19 02:53:50 +00:00
|
|
|
|
|
2020-09-15 13:24:44 +00:00
|
|
|
|
}
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[OneTimeTearDown]
|
2020-12-29 16:45:18 +00:00
|
|
|
|
public void TearDown()
|
|
|
|
|
{
|
|
|
|
|
DeleteFolder(TestFolder.Id);
|
|
|
|
|
DeleteFile(TestFile.Id);
|
2020-12-01 14:09:50 +00:00
|
|
|
|
}
|
2020-09-10 10:50:35 +00:00
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetCreateFolderItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(5)]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
public void CreateFolderReturnsFolderWrapper(string folderTitle)
|
2020-09-15 13:24:44 +00:00
|
|
|
|
{
|
2020-09-24 08:49:41 +00:00
|
|
|
|
var folderWrapper = FilesControllerHelper.CreateFolder(GlobalFolderHelper.FolderMy, folderTitle);
|
|
|
|
|
Assert.IsNotNull(folderWrapper);
|
|
|
|
|
Assert.AreEqual(folderTitle, folderWrapper.Title);
|
2020-12-29 16:45:18 +00:00
|
|
|
|
DeleteFolder(folderWrapper.Id);
|
2020-09-10 10:50:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetFolderItemsEmpty))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(6)]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Description("Empty Content")]
|
|
|
|
|
public void GetFolderEmptyReturnsFolderContentWrapper(bool withSubFolders,int filesCountExpected,int foldersCountExpected)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-09-21 07:06:17 +00:00
|
|
|
|
var folderContentWrapper = FilesControllerHelper.GetFolder(
|
2020-11-19 02:53:50 +00:00
|
|
|
|
TestFolder.Id,
|
2020-10-27 08:04:55 +00:00
|
|
|
|
UserOptions.Id,
|
|
|
|
|
FilterType.None,
|
|
|
|
|
withSubFolders);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
|
|
|
|
var filesCount = folderContentWrapper.Files.Count;
|
|
|
|
|
var foldersCount = folderContentWrapper.Folders.Count;
|
|
|
|
|
Assert.IsNotNull(folderContentWrapper);
|
2020-09-24 13:54:35 +00:00
|
|
|
|
Assert.AreEqual(filesCountExpected, filesCount);
|
|
|
|
|
Assert.AreEqual(foldersCountExpected, foldersCount);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetFolderItemsNotEmpty))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(7)]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Description("Not Empty Content")]
|
|
|
|
|
public void GetFolderNotEmptyReturnsFolderContentWrapper(bool withSubFolders, int filesCountExpected, int foldersCountExpected)
|
|
|
|
|
{
|
|
|
|
|
var folderContentWrapper = FilesControllerHelper.GetFolder(
|
2020-12-09 21:06:16 +00:00
|
|
|
|
TestFolderNotEmpty.Id,
|
2020-12-01 14:09:50 +00:00
|
|
|
|
UserOptions.Id,
|
|
|
|
|
FilterType.None,
|
|
|
|
|
withSubFolders);
|
|
|
|
|
|
|
|
|
|
var filesCount = folderContentWrapper.Files.Count;
|
|
|
|
|
var foldersCount = folderContentWrapper.Folders.Count;
|
|
|
|
|
Assert.IsNotNull(folderContentWrapper);
|
|
|
|
|
Assert.AreEqual(filesCountExpected, filesCount);
|
|
|
|
|
Assert.AreEqual(foldersCountExpected, foldersCount);
|
2020-12-29 16:45:18 +00:00
|
|
|
|
DeleteFolder(TestFolderNotEmpty.Id);
|
2020-12-01 14:09:50 +00:00
|
|
|
|
}
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetFolderInfoItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(8)]
|
2020-12-01 15:33:31 +00:00
|
|
|
|
public void GetFolderInfoReturnsFolderWrapper(string folderTitleExpected)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-11-19 02:53:50 +00:00
|
|
|
|
var folderWrapper = FilesControllerHelper.GetFolderInfo(TestFolder.Id);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(folderWrapper);
|
2020-09-24 08:49:41 +00:00
|
|
|
|
Assert.AreEqual(folderTitleExpected, folderWrapper.Title);
|
2020-12-01 14:09:50 +00:00
|
|
|
|
Assert.AreEqual(TestFolder.Id, folderWrapper.Id);
|
2020-12-01 15:30:02 +00:00
|
|
|
|
Assert.AreEqual(GlobalFolderHelper.FolderMy, folderWrapper.ParentId);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetRenameFolderItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(9)]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
public void RenameFolderReturnsFolderWrapper(string folderTitle)
|
2020-09-10 10:50:35 +00:00
|
|
|
|
{
|
2020-11-19 02:53:50 +00:00
|
|
|
|
var folderWrapper = FilesControllerHelper.RenameFolder(TestFolder.Id, folderTitle);
|
2020-09-10 10:50:35 +00:00
|
|
|
|
|
2020-09-15 13:24:44 +00:00
|
|
|
|
Assert.IsNotNull(folderWrapper);
|
2020-09-24 08:49:41 +00:00
|
|
|
|
Assert.AreEqual(folderTitle, folderWrapper.Title);
|
2020-09-10 10:50:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetDeleteFolderItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("Folder")]
|
2020-12-09 21:06:16 +00:00
|
|
|
|
[Order(10)]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
public void DeleteFolderReturnsFolderWrapper(bool deleteAfter, bool immediately)
|
2020-09-10 10:50:35 +00:00
|
|
|
|
{
|
2020-12-01 15:30:02 +00:00
|
|
|
|
FilesControllerHelper.DeleteFolder(TestFolder.Id, deleteAfter, immediately);
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
var statuses = FileStorageService.GetTasksStatuses();
|
|
|
|
|
|
|
|
|
|
if (statuses.TrueForAll(r => r.Finished))
|
|
|
|
|
break;
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
Assert.IsTrue(FileStorageService.GetTasksStatuses().TrueForAll(r => string.IsNullOrEmpty(r.Error)));
|
2020-09-10 10:50:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetCreateFileItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("File")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Order(1)]
|
|
|
|
|
public void CreateFileReturnsFileWrapper(string fileTitle)
|
2020-09-16 13:19:08 +00:00
|
|
|
|
{
|
2020-11-26 17:30:57 +00:00
|
|
|
|
var fileWrapper = FilesControllerHelper.CreateFile(GlobalFolderHelper.FolderMy, fileTitle, default);
|
2020-12-09 21:06:16 +00:00
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
Assert.IsNotNull(fileWrapper);
|
2020-11-19 02:53:50 +00:00
|
|
|
|
Assert.AreEqual(fileTitle + ".docx", fileWrapper.Title);
|
2020-12-29 16:45:18 +00:00
|
|
|
|
DeleteFile(fileWrapper.Id);
|
2020-12-09 21:06:16 +00:00
|
|
|
|
|
2020-09-16 13:19:08 +00:00
|
|
|
|
}
|
2020-11-12 03:55:14 +00:00
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetFileInfoItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("File")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Order(2)]
|
|
|
|
|
public void GetFileInfoReturnsFilesWrapper(string fileTitleExpected)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-11-19 02:53:50 +00:00
|
|
|
|
var fileWrapper = FilesControllerHelper.GetFileInfo(TestFile.Id);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(fileWrapper);
|
2020-11-19 02:53:50 +00:00
|
|
|
|
Assert.AreEqual(fileTitleExpected + ".docx", fileWrapper.Title);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetUpdateFileItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("File")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Order(3)]
|
|
|
|
|
public void UpdateFileReturnsFileWrapper(string fileTitle, int lastVersion)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-09-21 07:06:17 +00:00
|
|
|
|
var fileWrapper = FilesControllerHelper.UpdateFile(
|
2020-11-19 02:53:50 +00:00
|
|
|
|
TestFile.Id,
|
2020-09-24 08:49:41 +00:00
|
|
|
|
fileTitle,
|
|
|
|
|
lastVersion);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
|
|
|
|
Assert.IsNotNull(fileWrapper);
|
2020-11-19 02:53:50 +00:00
|
|
|
|
Assert.AreEqual(fileTitle + ".docx", fileWrapper.Title);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetDeleteFileItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("File")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
[Order(4)]
|
|
|
|
|
public void DeleteFileReturnsFileWrapper(bool deleteAfter, bool immediately)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-12-01 15:30:02 +00:00
|
|
|
|
FilesControllerHelper.DeleteFile(
|
2020-11-19 02:53:50 +00:00
|
|
|
|
TestFile.Id,
|
2020-09-24 08:49:41 +00:00
|
|
|
|
deleteAfter,
|
|
|
|
|
immediately);
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
2020-12-01 15:30:02 +00:00
|
|
|
|
while (true)
|
2020-09-17 14:56:51 +00:00
|
|
|
|
{
|
2020-12-01 15:30:02 +00:00
|
|
|
|
var statuses = FileStorageService.GetTasksStatuses();
|
2020-09-17 14:56:51 +00:00
|
|
|
|
|
2020-12-01 15:30:02 +00:00
|
|
|
|
if (statuses.TrueForAll(r => r.Finished))
|
|
|
|
|
break;
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
}
|
|
|
|
|
Assert.IsTrue(FileStorageService.GetTasksStatuses().TrueForAll(r => string.IsNullOrEmpty(r.Error)));
|
2020-09-17 14:56:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetMoveBatchItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("BatchItems")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
public void MoveBatchItemsReturnsOperationMove(string json)
|
2020-09-23 14:49:15 +00:00
|
|
|
|
{
|
|
|
|
|
var batchModel = GetBatchModel(json);
|
|
|
|
|
|
|
|
|
|
var statuses = FilesControllerHelper.MoveBatchItems(batchModel);
|
|
|
|
|
|
|
|
|
|
FileOperationWraper status = null;
|
|
|
|
|
foreach (var item in statuses)
|
|
|
|
|
{
|
|
|
|
|
if (item.OperationType == FileOperationType.Move)
|
|
|
|
|
{
|
|
|
|
|
status = item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var statusMove = FileOperationType.Move;
|
|
|
|
|
Assert.IsNotNull(status);
|
|
|
|
|
Assert.AreEqual(statusMove, status.OperationType);
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 08:49:41 +00:00
|
|
|
|
[TestCaseSource(typeof(DocumentData), nameof(DocumentData.GetCopyBatchItems))]
|
2020-12-01 15:30:02 +00:00
|
|
|
|
[Category("BatchItems")]
|
2020-12-01 14:09:50 +00:00
|
|
|
|
public void CopyBatchItemsReturnsOperationCopy(string json)
|
2020-09-23 14:49:15 +00:00
|
|
|
|
{
|
|
|
|
|
var batchModel = GetBatchModel(json);
|
|
|
|
|
|
|
|
|
|
var statuses = FilesControllerHelper.CopyBatchItems(batchModel);
|
|
|
|
|
|
|
|
|
|
FileOperationWraper status = null;
|
|
|
|
|
foreach (var item in statuses)
|
|
|
|
|
{
|
|
|
|
|
if (item.OperationType == FileOperationType.Copy)
|
|
|
|
|
{
|
|
|
|
|
status = item;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var statusCopy = FileOperationType.Copy;
|
|
|
|
|
Assert.IsNotNull(status);
|
|
|
|
|
Assert.AreEqual(statusCopy, status.OperationType);
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-01 14:09:50 +00:00
|
|
|
|
|
2020-09-10 10:50:35 +00:00
|
|
|
|
}
|
|
|
|
|
}
|