DocSpace-buildtools/products/ASC.Files/Tests/MyDocuments.cs

240 lines
9.2 KiB
C#
Raw Normal View History

2022-02-23 10:42:14 +00:00
using System.Threading.Tasks;
2020-12-29 16:45:18 +00:00
2020-12-01 14:09:50 +00:00
using ASC.Api.Documents;
2020-09-17 14:56:51 +00:00
using ASC.Files.Core;
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;
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]
2022-02-23 10:42:14 +00:00
public override async Task SetUp()
2020-09-10 10:50:35 +00:00
{
2022-02-23 10:42:14 +00:00
await base.SetUp();
TestFolder = await FilesControllerHelper.CreateFolderAsync(GlobalFolderHelper.FolderMy, "TestFolder");
TestFolderNotEmpty = await FilesControllerHelper.CreateFolderAsync(GlobalFolderHelper.FolderMy, "TestFolderNotEmpty");
await FilesControllerHelper.CreateFileAsync(TestFolderNotEmpty.Id, "TestFileToContentInTestFolder", default);
await FilesControllerHelper.CreateFolderAsync(TestFolderNotEmpty.Id, "TestFolderToContentInTestFolder");
TestFile = await FilesControllerHelper.CreateFileAsync(GlobalFolderHelper.FolderMy, "TestFile", default);
}
[OneTimeSetUp]
public void Authenticate()
{
SecurityContext.AuthenticateMe(CurrentTenant.OwnerId);
}
2020-11-19 02:53:50 +00:00
2020-12-09 21:06:16 +00:00
[OneTimeTearDown]
2022-02-23 10:42:14 +00:00
public async Task TearDown()
2020-12-29 16:45:18 +00:00
{
2022-02-23 10:42:14 +00:00
await DeleteFolderAsync(TestFolder.Id);
await DeleteFileAsync(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)]
2022-02-23 10:42:14 +00:00
public async Task CreateFolderReturnsFolderWrapper(string folderTitle)
{
2022-02-23 10:42:14 +00:00
var folderWrapper = await FilesControllerHelper.CreateFolderAsync(GlobalFolderHelper.FolderMy, folderTitle);
2020-09-24 08:49:41 +00:00
Assert.IsNotNull(folderWrapper);
Assert.AreEqual(folderTitle, folderWrapper.Title);
2022-02-23 10:42:14 +00:00
await DeleteFolderAsync(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")]
2022-02-23 10:42:14 +00:00
public async Task GetFolderEmptyReturnsFolderContentWrapper(bool withSubFolders, int filesCountExpected, int foldersCountExpected)
2020-09-17 14:56:51 +00:00
{
2022-02-23 10:42:14 +00:00
var folderContentWrapper = await FilesControllerHelper.GetFolderAsync(
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")]
2022-02-23 10:42:14 +00:00
public async Task GetFolderNotEmptyReturnsFolderContentWrapper(bool withSubFolders, int filesCountExpected, int foldersCountExpected)
2020-12-01 14:09:50 +00:00
{
2022-02-23 10:42:14 +00:00
var folderContentWrapper = await FilesControllerHelper.GetFolderAsync(
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);
2022-02-23 10:42:14 +00:00
await DeleteFolderAsync(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)]
2022-02-23 10:42:14 +00:00
public async Task GetFolderInfoReturnsFolderWrapper(string folderTitleExpected)
2020-09-17 14:56:51 +00:00
{
2022-02-23 10:42:14 +00:00
var folderWrapper = await FilesControllerHelper.GetFolderInfoAsync(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)]
2022-02-23 10:42:14 +00:00
public async Task RenameFolderReturnsFolderWrapper(string folderTitle)
2020-09-10 10:50:35 +00:00
{
2022-02-23 10:42:14 +00:00
var folderWrapper = await FilesControllerHelper.RenameFolderAsync(TestFolder.Id, folderTitle);
2020-09-10 10:50:35 +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)]
2022-02-23 10:42:14 +00:00
public async Task DeleteFolderReturnsFolderWrapper(bool deleteAfter, bool immediately)
2020-09-10 10:50:35 +00:00
{
2022-02-23 10:42:14 +00:00
await FilesControllerHelper.DeleteFolder(TestFolder.Id, deleteAfter, immediately);
2020-12-01 15:30:02 +00:00
while (true)
{
var statuses = FileStorageService.GetTasksStatuses();
if (statuses.TrueForAll(r => r.Finished))
break;
2022-02-23 10:42:14 +00:00
await Task.Delay(100);
2020-12-01 15:30:02 +00:00
}
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)]
2022-02-23 10:42:14 +00:00
public async Task CreateFileReturnsFileWrapper(string fileTitle)
{
2022-02-23 10:42:14 +00:00
var fileWrapper = await FilesControllerHelper.CreateFileAsync(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);
2022-02-23 10:42:14 +00:00
await DeleteFileAsync(fileWrapper.Id);
2020-12-09 21:06:16 +00:00
2022-02-23 10:42: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)]
2022-02-23 10:42:14 +00:00
public async Task GetFileInfoReturnsFilesWrapper(string fileTitleExpected)
2020-09-17 14:56:51 +00:00
{
2022-02-23 10:42:14 +00:00
var fileWrapper = await FilesControllerHelper.GetFileInfoAsync(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)]
2022-02-23 10:42:14 +00:00
public async Task UpdateFileReturnsFileWrapper(string fileTitle, int lastVersion)
2020-09-17 14:56:51 +00:00
{
2022-02-23 10:42:14 +00:00
var fileWrapper = await FilesControllerHelper.UpdateFileAsync(
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)]
2022-02-23 10:42:14 +00:00
public async Task DeleteFileReturnsFileWrapper(bool deleteAfter, bool immediately)
2020-09-17 14:56:51 +00:00
{
2022-02-23 10:42:14 +00:00
await FilesControllerHelper.DeleteFileAsync(
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;
2022-02-23 10:42:14 +00:00
await Task.Delay(100);
2020-12-01 15:30:02 +00:00
}
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")]
2022-02-23 10:42:14 +00:00
public async Task MoveBatchItemsReturnsOperationMove(string json)
{
var batchModel = GetBatchModel(json);
2022-02-23 10:42:14 +00:00
var statuses = await FilesControllerHelper.MoveBatchItemsAsync(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")]
2022-02-23 10:42:14 +00:00
public async Task CopyBatchItemsReturnsOperationCopy(string json)
{
var batchModel = GetBatchModel(json);
2022-02-23 10:42:14 +00:00
var statuses = await FilesControllerHelper.CopyBatchItemsAsync(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);
2022-02-23 10:42:14 +00:00
}
2020-09-10 10:50:35 +00:00
}
}