Files: tests. refactoring

This commit is contained in:
pavelbannov 2022-07-13 13:00:08 +03:00
parent 120a57c1bf
commit ea00433ff1
8 changed files with 91 additions and 125 deletions

View File

@ -126,9 +126,9 @@ public class MySetUpClass
public partial class BaseFilesTests public partial class BaseFilesTests
{ {
protected readonly JsonSerializerOptions _options; private readonly JsonSerializerOptions _options;
protected UserManager _userManager; protected UserManager _userManager;
private protected HttpClient _client; private HttpClient _client;
private readonly string _baseAddress; private readonly string _baseAddress;
private string _cookie; private string _cookie;
@ -207,91 +207,29 @@ public partial class BaseFilesTests
return batchModel; return batchModel;
} }
protected async Task<T> GetAsync<T>(string url) protected Task<T> GetAsync<T>(string url)
{ {
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie); return SendAsync<T>(HttpMethod.Get, url);
var request = await _client.GetAsync(url);
var result = await request.Content.ReadFromJsonAsync<SuccessApiResponse>();
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
} }
protected async Task<T> GetAsync<T>(string url, HttpContent content) protected Task<T> PostAsync<T>(string url, object data = null)
{ {
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie); return SendAsync<T>(HttpMethod.Post, url, data);
var request = new HttpRequestMessage
{
RequestUri = new Uri(_baseAddress + url),
Method = HttpMethod.Get,
Content = content
};
var response = await _client.SendAsync(request);
var result = await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
} }
protected async Task<T> PostAsync<T>(string url, HttpContent content) protected Task<T> PutAsync<T>(string url, object data = null)
{ {
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie); return SendAsync<T>(HttpMethod.Put, url, data);
var response = await _client.PostAsync(url, content);
var result = await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
} }
protected async Task<T> PutAsync<T>(string url, HttpContent content) protected Task<T> DeleteAsync<T>(string url, object data = null)
{ {
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie); return SendAsync<T>(HttpMethod.Delete, url, data);
var response = await _client.PutAsync(url, content);
var result = await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
} }
private protected async Task<HttpResponseMessage> DeleteAsync(string url, JsonContent content) private protected Task<SuccessApiResponse> DeleteAsync(string url, object data = null)
{ {
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie); return SendAsync(HttpMethod.Delete, url, data);
var request = new HttpRequestMessage
{
RequestUri = new Uri(_baseAddress + url),
Method = HttpMethod.Delete,
Content = content
};
return await _client.SendAsync(request);
}
protected async Task<T> DeleteAsync<T>(string url, JsonContent content)
{
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie);
var response = await DeleteAsync(url, content);
var result = await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
} }
protected async Task<List<FileOperationResult>> WaitLongOperation() protected async Task<List<FileOperationResult>> WaitLongOperation()
@ -314,7 +252,38 @@ public partial class BaseFilesTests
protected void CheckStatuses(List<FileOperationResult> statuses) protected void CheckStatuses(List<FileOperationResult> statuses)
{ {
Assert.IsTrue(statuses.Count() > 0); Assert.IsTrue(statuses.Count > 0);
Assert.IsTrue(statuses.TrueForAll(r => string.IsNullOrEmpty(r.Error))); Assert.IsTrue(statuses.TrueForAll(r => string.IsNullOrEmpty(r.Error)));
} }
protected async Task<T> SendAsync<T>(HttpMethod method, string url, object data = null)
{
var result = await SendAsync(method, url, data);
if (result.Response is JsonElement jsonElement)
{
return jsonElement.Deserialize<T>(_options);
}
throw new Exception("can't parsing result");
}
protected async Task<SuccessApiResponse> SendAsync(HttpMethod method, string url, object data = null)
{
_client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _cookie);
var request = new HttpRequestMessage
{
RequestUri = new Uri(_baseAddress + url),
Method = method,
};
if (data != null)
{
request.Content = JsonContent.Create(data);
}
var response = await _client.SendAsync(request);
return await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
}
} }

View File

@ -38,8 +38,7 @@ public partial class BaseFilesTests
[Description("post - files/folder/{folderId} - attempt to create a folder when it is forbidden")] [Description("post - files/folder/{folderId} - attempt to create a folder when it is forbidden")]
public async Task CreateFolderReturnsFolderWrapperAsync(int folderId) public async Task CreateFolderReturnsFolderWrapperAsync(int folderId)
{ {
var response = await _client.PostAsync("folder/" + folderId, JsonContent.Create(new { Title = "test" })); var result = await SendAsync(HttpMethod.Post, "folder/" + folderId, new { Title = "test" });
var result = await response.Content.ReadFromJsonAsync<SuccessApiResponse>();
Assert.AreEqual(HttpStatusCode.Forbidden, result.StatusCode); Assert.AreEqual(HttpStatusCode.Forbidden, result.StatusCode);
} }
@ -52,7 +51,7 @@ public partial class BaseFilesTests
[Order(1)] [Order(1)]
public async Task CreateFileReturnsFolderWrapperAsync(int folderId) public async Task CreateFileReturnsFolderWrapperAsync(int folderId)
{ {
var file = await PostAsync<FileDto<int>>(folderId + "/file", JsonContent.Create(new { Title = "test" })); var file = await PostAsync<FileDto<int>>($"{folderId}/file", new { Title = "test" });
Assert.AreEqual(file.FolderId, 1); Assert.AreEqual(file.FolderId, 1);
} }
} }

View File

@ -35,7 +35,7 @@ public partial class BaseFilesTests
[Description("post - files/favorites - add file and folder to favorites")] [Description("post - files/favorites - add file and folder to favorites")]
public async Task AddFavoriteFolderAndFileToFolderWrapper(int folderID, int fileId) public async Task AddFavoriteFolderAndFileToFolderWrapper(int folderID, int fileId)
{ {
var favorite = await PostAsync<bool>("favorites", JsonContent.Create(new { FolderIds = new List<int> { folderID }, FileIds = new List<int> { fileId } })); var favorite = await PostAsync<bool>("favorites", new { FolderIds = new List<int> { folderID }, FileIds = new List<int> { fileId } });
Assert.IsTrue(favorite); Assert.IsTrue(favorite);
} }
@ -46,7 +46,7 @@ public partial class BaseFilesTests
[Description("delete - files/favorites - delete file and folder from favorites")] [Description("delete - files/favorites - delete file and folder from favorites")]
public async Task DeleteFavoriteFolderAndFileToFolderWrapper(int folderID, int fileId) public async Task DeleteFavoriteFolderAndFileToFolderWrapper(int folderID, int fileId)
{ {
var favorite = await DeleteAsync<bool>("favorites", JsonContent.Create(new { FolderIds = new List<int> { folderID }, FileIds = new List<int> { fileId } })); var favorite = await DeleteAsync<bool>("favorites", new { FolderIds = new List<int> { folderID }, FileIds = new List<int> { fileId } });
Assert.IsTrue(favorite); Assert.IsTrue(favorite);
} }

View File

@ -35,7 +35,7 @@ public partial class BaseFilesTests
[Description("post - files/folder/{folderId} - create new folder")] [Description("post - files/folder/{folderId} - create new folder")]
public async Task CreateFolderReturnsFolderWrapper(int folderId, string title) public async Task CreateFolderReturnsFolderWrapper(int folderId, string title)
{ {
var folder = await PostAsync<FolderDto<int>>("folder/" + folderId, JsonContent.Create(new { Title = title })); var folder = await PostAsync<FolderDto<int>>($"folder/{folderId}", new { Title = title });
Assert.IsNotNull(folder); Assert.IsNotNull(folder);
Assert.AreEqual(title, folder.Title); Assert.AreEqual(title, folder.Title);
Assert.AreEqual(folderId, folder.ParentId); Assert.AreEqual(folderId, folder.ParentId);
@ -61,7 +61,7 @@ public partial class BaseFilesTests
[Description("get - files/folder/{folderId} - get folder info")] [Description("get - files/folder/{folderId} - get folder info")]
public async Task GetFolderInfoReturnsFolderWrapper(int folderId, string folderName, int parentId) public async Task GetFolderInfoReturnsFolderWrapper(int folderId, string folderName, int parentId)
{ {
var folder = await GetAsync<FolderDto<int>>("folder/" + folderId); var folder = await GetAsync<FolderDto<int>>($"folder/{folderId}");
Assert.IsNotNull(folder); Assert.IsNotNull(folder);
Assert.AreEqual(folderName, folder.Title); Assert.AreEqual(folderName, folder.Title);
@ -75,7 +75,7 @@ public partial class BaseFilesTests
[Description("put - files/folder/{folderId} - rename folder")] [Description("put - files/folder/{folderId} - rename folder")]
public async Task RenameFolderReturnsFolderWrapper(int folderId, string newTitle) public async Task RenameFolderReturnsFolderWrapper(int folderId, string newTitle)
{ {
var folder = await PutAsync<FolderDto<int>>("folder/" + folderId, JsonContent.Create(new { Title = newTitle })); var folder = await PutAsync<FolderDto<int>>($"folder/{folderId}", new { Title = newTitle });
Assert.IsNotNull(folder); Assert.IsNotNull(folder);
Assert.AreEqual(folderId, folder.Id); Assert.AreEqual(folderId, folder.Id);
@ -88,7 +88,7 @@ public partial class BaseFilesTests
[Description("delete - files/folder/{folderId} - delete folder")] [Description("delete - files/folder/{folderId} - delete folder")]
public async Task DeleteFolderReturnsFolderWrapper(int folderId, bool deleteAfter, bool immediately) public async Task DeleteFolderReturnsFolderWrapper(int folderId, bool deleteAfter, bool immediately)
{ {
await DeleteAsync("folder/" + folderId, JsonContent.Create(new { DeleteAfter = deleteAfter, Immediately = immediately })); await DeleteAsync($"folder/{folderId}", new { DeleteAfter = deleteAfter, Immediately = immediately });
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }
@ -99,7 +99,7 @@ public partial class BaseFilesTests
[Description("post - files/@my/file - create file in myFolder")] [Description("post - files/@my/file - create file in myFolder")]
public async Task CreateFileReturnsFileWrapper(string newTitle) public async Task CreateFileReturnsFileWrapper(string newTitle)
{ {
var file = await PostAsync<FileDto<int>>("@my/file", JsonContent.Create(new { Title = newTitle })); var file = await PostAsync<FileDto<int>>("@my/file", new { Title = newTitle });
Assert.IsNotNull(file); Assert.IsNotNull(file);
Assert.AreEqual($"{newTitle}.docx", file.Title); Assert.AreEqual($"{newTitle}.docx", file.Title);
@ -112,7 +112,7 @@ public partial class BaseFilesTests
[Description("get - files/file/{fileId} - get file info")] [Description("get - files/file/{fileId} - get file info")]
public async Task GetFileInfoReturnsFilesWrapper(int fileId, string fileName) public async Task GetFileInfoReturnsFilesWrapper(int fileId, string fileName)
{ {
var file = await GetAsync<FileDto<int>>("file/" + fileId); var file = await GetAsync<FileDto<int>>($"file/{fileId}");
Assert.IsNotNull(file); Assert.IsNotNull(file);
Assert.AreEqual(fileName, file.Title); Assert.AreEqual(fileName, file.Title);
@ -124,7 +124,7 @@ public partial class BaseFilesTests
[Description("put - files/file/{fileId} - update file")] [Description("put - files/file/{fileId} - update file")]
public async Task UpdateFileReturnsFileWrapper(int fileId, string newTitle, int lastVersion) public async Task UpdateFileReturnsFileWrapper(int fileId, string newTitle, int lastVersion)
{ {
var file = await PutAsync<FileDto<int>>("file/" + fileId, JsonContent.Create(new { Title = newTitle, LastVersion = lastVersion })); var file = await PutAsync<FileDto<int>>($"file/{fileId}", new { Title = newTitle, LastVersion = lastVersion });
Assert.IsNotNull(file); Assert.IsNotNull(file);
Assert.AreEqual(newTitle + ".docx", file.Title); Assert.AreEqual(newTitle + ".docx", file.Title);
@ -136,7 +136,7 @@ public partial class BaseFilesTests
[Description("delete - files/file/{fileId} - delete file")] [Description("delete - files/file/{fileId} - delete file")]
public async Task DeleteFileReturnsFileWrapper(int fileId, bool deleteAfter, bool immediately) public async Task DeleteFileReturnsFileWrapper(int fileId, bool deleteAfter, bool immediately)
{ {
await DeleteAsync("file/" + fileId, JsonContent.Create(new { DeleteAfter = deleteAfter, Immediately = immediately })); await DeleteAsync($"file/{fileId}", new { DeleteAfter = deleteAfter, Immediately = immediately });
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }
@ -148,7 +148,7 @@ public partial class BaseFilesTests
{ {
var batchModel = GetBatchModel(json); var batchModel = GetBatchModel(json);
var statuses = await PutAsync<IEnumerable<FileOperationDto>>("fileops/move", JsonContent.Create(batchModel)); var statuses = await PutAsync<IEnumerable<FileOperationDto>>("fileops/move", batchModel);
FileOperationDto status = null; FileOperationDto status = null;
foreach (var item in statuses) foreach (var item in statuses)
@ -171,7 +171,7 @@ public partial class BaseFilesTests
{ {
var batchModel = GetBatchModel(json); var batchModel = GetBatchModel(json);
var statuses = await PutAsync<IEnumerable<FileOperationDto>>("fileops/copy", JsonContent.Create(batchModel)); var statuses = await PutAsync<IEnumerable<FileOperationDto>>("fileops/copy", batchModel);
FileOperationDto status = null; FileOperationDto status = null;
foreach (var item in statuses) foreach (var item in statuses)

View File

@ -35,7 +35,7 @@ public partial class BaseFilesTests
[Description("post - file/{fileId}/recent - add file to recent")] [Description("post - file/{fileId}/recent - add file to recent")]
public async Task RecentFileReturnsFolderWrapper(int fileId, string fileName) public async Task RecentFileReturnsFolderWrapper(int fileId, string fileName)
{ {
var file = await PostAsync<FileDto<int>>("file/" + fileId + "/recent", null); var file = await PostAsync<FileDto<int>>($"file/{fileId}/recent");
Assert.IsNotNull(file); Assert.IsNotNull(file);
Assert.AreEqual(fileName, file.Title); Assert.AreEqual(fileName, file.Title);
} }
@ -46,9 +46,9 @@ public partial class BaseFilesTests
[Description("delete - file/{fileId}/recent - delete file which added to recent")] [Description("delete - file/{fileId}/recent - delete file which added to recent")]
public async Task DeleteRecentFileReturnsFolderWrapper(int fileId, string fileTitleExpected) public async Task DeleteRecentFileReturnsFolderWrapper(int fileId, string fileTitleExpected)
{ {
await PostAsync<FileDto<int>>("file/" + fileId + "/recent", null); await PostAsync<FileDto<int>>($"file/{fileId}/recent");
await DeleteAsync("file/" + fileId, JsonContent.Create(new { DeleteAfter = false, Immediately = true })); await DeleteAsync($"file/{fileId}", new { DeleteAfter = false, Immediately = true });
await WaitLongOperation(); await WaitLongOperation();
var recents = await GetAsync<FolderContentDto<int>>("@recent"); var recents = await GetAsync<FolderContentDto<int>>("@recent");
@ -60,7 +60,7 @@ public partial class BaseFilesTests
[Order(3)] [Order(3)]
public async Task ShareFileToAnotherUserAddToRecent(int fileId, string fileName) public async Task ShareFileToAnotherUserAddToRecent(int fileId, string fileName)
{ {
var file = await PostAsync<FileDto<int>>("file/" + fileId + "/recent", null); var file = await PostAsync<FileDto<int>>($"file/{fileId}/recent");
Assert.IsNotNull(file); Assert.IsNotNull(file);
Assert.AreEqual(fileName, file.Title); Assert.AreEqual(fileName, file.Title);

View File

@ -37,7 +37,7 @@ public partial class BaseFilesTests
[Description("post - rooms - create room")] [Description("post - rooms - create room")]
public async Task CreateRoom(string title, int roomType) public async Task CreateRoom(string title, int roomType)
{ {
var room = await PostAsync<FolderDto<int>>("rooms", JsonContent.Create(new { Title = title, RoomType = roomType })); var room = await PostAsync<FolderDto<int>>("rooms", new { Title = title, RoomType = roomType });
Assert.IsNotNull(room); Assert.IsNotNull(room);
Assert.AreEqual(title, room.Title); Assert.AreEqual(title, room.Title);
} }
@ -48,7 +48,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id} - rename room")] [Description("put - rooms/{id} - rename room")]
public async Task RenameRoom(int id, string newTitle) public async Task RenameRoom(int id, string newTitle)
{ {
var room = await PutAsync<FolderDto<int>>($"rooms/{id}", JsonContent.Create(new { Title = newTitle })); var room = await PutAsync<FolderDto<int>>($"rooms/{id}", new { Title = newTitle });
Assert.IsNotNull(room); Assert.IsNotNull(room);
Assert.AreEqual(newTitle, room.Title); Assert.AreEqual(newTitle, room.Title);
} }
@ -59,7 +59,7 @@ public partial class BaseFilesTests
[Description("delete - rooms/{id} - delete room")] [Description("delete - rooms/{id} - delete room")]
public async Task DeleteRoom(int id, bool deleteAfter) public async Task DeleteRoom(int id, bool deleteAfter)
{ {
await DeleteAsync<FileOperationDto>($"rooms/{id}", JsonContent.Create(new { DeleteAfter = deleteAfter })); await DeleteAsync<FileOperationDto>($"rooms/{id}", new { DeleteAfter = deleteAfter });
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }
@ -70,7 +70,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/archive - archive a room")] [Description("put - rooms/{id}/archive - archive a room")]
public async Task ArchiveRoom(int id, bool deleteAfter) public async Task ArchiveRoom(int id, bool deleteAfter)
{ {
await PutAsync<FileOperationDto>($"rooms/{id}/archive", JsonContent.Create(new { DeleteAfter = deleteAfter })); await PutAsync<FileOperationDto>($"rooms/{id}/archive", new { DeleteAfter = deleteAfter });
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }
@ -81,7 +81,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/archive - unarchive a room")] [Description("put - rooms/{id}/archive - unarchive a room")]
public async Task UnarchiveRoom(int id, bool deleteAfter) public async Task UnarchiveRoom(int id, bool deleteAfter)
{ {
await PutAsync<FileOperationDto>($"rooms/{id}/unarchive", JsonContent.Create(new { DeleteAfter = deleteAfter })); await PutAsync<FileOperationDto>($"rooms/{id}/unarchive", new { DeleteAfter = deleteAfter });
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }
@ -95,7 +95,7 @@ public partial class BaseFilesTests
var newUser = _userManager.GetUsers(Guid.Parse("005bb3ff-7de3-47d2-9b3d-61b9ec8a76a5")); var newUser = _userManager.GetUsers(Guid.Parse("005bb3ff-7de3-47d2-9b3d-61b9ec8a76a5"));
var testRoomParamRead = new List<FileShareParams> { new FileShareParams { Access = Core.Security.FileShare.Read, ShareTo = newUser.Id } }; var testRoomParamRead = new List<FileShareParams> { new FileShareParams { Access = Core.Security.FileShare.Read, ShareTo = newUser.Id } };
var share = await PutAsync<IEnumerable<FileShareDto>>($"rooms/{id}/share", JsonContent.Create(new { Share = testRoomParamRead, Notify = notify, SharingMessage = message })); var share = await PutAsync<IEnumerable<FileShareDto>>($"rooms/{id}/share", new { Share = testRoomParamRead, Notify = notify, SharingMessage = message });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -125,7 +125,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/tags - add tags by id")] [Description("put - rooms/{id}/tags - add tags by id")]
public async Task AddTagsById(int id, string tagNames) public async Task AddTagsById(int id, string tagNames)
{ {
var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/tags", JsonContent.Create(new { Names = tagNames.Split(',') })); var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/tags", new { Names = tagNames.Split(',') });
Assert.IsTrue(folder.Tags.Count() == 2); Assert.IsTrue(folder.Tags.Count() == 2);
} }
@ -135,7 +135,7 @@ public partial class BaseFilesTests
[Description("delete - rooms/{id}/tags - delete tags by id")] [Description("delete - rooms/{id}/tags - delete tags by id")]
public async Task DeleteTagsById(int id, string tagNames) public async Task DeleteTagsById(int id, string tagNames)
{ {
var folder = await DeleteAsync<FolderDto<int>>($"rooms/{id}/tags", JsonContent.Create(new { Names = tagNames.Split(',') })); var folder = await DeleteAsync<FolderDto<int>>($"rooms/{id}/tags", new { Names = tagNames.Split(',') });
Assert.IsTrue(folder.Tags.Count() == 0); Assert.IsTrue(folder.Tags.Count() == 0);
} }
@ -145,7 +145,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/pin - pin a room")] [Description("put - rooms/{id}/pin - pin a room")]
public async Task PinRoom(int id) public async Task PinRoom(int id)
{ {
var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/pin", null); var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/pin");
Assert.IsTrue(folder.Pinned); Assert.IsTrue(folder.Pinned);
} }
@ -155,7 +155,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/unpin - unpin a room")] [Description("put - rooms/{id}/unpin - unpin a room")]
public async Task UnpinRoom(int id) public async Task UnpinRoom(int id)
{ {
var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/unpin", null); var folder = await PutAsync<FolderDto<int>>($"rooms/{id}/unpin");
Assert.IsFalse(folder.Pinned); Assert.IsFalse(folder.Pinned);
} }
@ -165,7 +165,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/links/send - send invitation links to email")] [Description("put - rooms/{id}/links/send - send invitation links to email")]
public async Task SendLink(int id, string email) public async Task SendLink(int id, string email)
{ {
var invites = await PutAsync<IEnumerable<InviteResultDto>>($"rooms/{id}/links/send", JsonContent.Create(new { Emails = new List<string>() { email }, EmployeeType = EmployeeType.All, Access = Core.Security.FileShare.Read })); var invites = await PutAsync<IEnumerable<InviteResultDto>>($"rooms/{id}/links/send", new { Emails = new List<string>() { email }, EmployeeType = EmployeeType.All, Access = Core.Security.FileShare.Read });
Assert.IsTrue(invites.First().Success); Assert.IsTrue(invites.First().Success);
} }
@ -175,7 +175,7 @@ public partial class BaseFilesTests
[Description("put - rooms/{id}/share - share a room by link")] [Description("put - rooms/{id}/share - share a room by link")]
public async Task ShareRoomByLink(int id, string key) public async Task ShareRoomByLink(int id, string key)
{ {
var share = await PutAsync<IEnumerable<FileShareDto>>($"rooms/{id}/share", JsonContent.Create(new { Access = Core.Security.FileShare.Read, Key = key })); var share = await PutAsync<IEnumerable<FileShareDto>>($"rooms/{id}/share", new { Access = Core.Security.FileShare.Read, Key = key });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -185,7 +185,7 @@ public partial class BaseFilesTests
[Description("get - rooms/{id}/links - get invitation links")] [Description("get - rooms/{id}/links - get invitation links")]
public async Task GetLink(int id) public async Task GetLink(int id)
{ {
var invites = await GetAsync<string>($"rooms/{id}/links", JsonContent.Create(new { Access = Core.Security.FileShare.Read })); var invites = await GetAsync<string>($"rooms/{id}/links?access=2");
Assert.IsNotNull(invites); Assert.IsNotNull(invites);
Assert.IsNotEmpty(invites); Assert.IsNotEmpty(invites);
} }

View File

@ -49,7 +49,7 @@ public partial class BaseFilesTests
[Description("put - files/folder/{folderId}/share - share folder to another user for read")] [Description("put - files/folder/{folderId}/share - share folder to another user for read")]
public async Task ShareFolderToAnotherUserRead(int folderId, bool notify, string message) public async Task ShareFolderToAnotherUserRead(int folderId, bool notify, string message)
{ {
var share = await PutAsync<IEnumerable<FileShareDto>>("folder/" + folderId + "/share", JsonContent.Create(new { Share = _testFolderParamRead, Notify = notify, SharingMessage = message })); var share = await PutAsync<IEnumerable<FileShareDto>>($"folder/{folderId}/share", new { Share = _testFolderParamRead, Notify = notify, SharingMessage = message });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -59,8 +59,7 @@ public partial class BaseFilesTests
[Description("put - files/folder/{folderId} - try to update folder which can only read")] [Description("put - files/folder/{folderId} - try to update folder which can only read")]
public async Task RenameSharedFolderReturnsFolderWrapperReadAsync(int folderId) public async Task RenameSharedFolderReturnsFolderWrapperReadAsync(int folderId)
{ {
var request = await _client.PutAsync("folder/" + folderId, JsonContent.Create(new { Title = "newName" })); var result = await SendAsync(HttpMethod.Put, "folder/" + folderId, new { Title = "newName" });
var result = await request.Content.ReadFromJsonAsync<SuccessApiResponse>();
Assert.AreEqual(HttpStatusCode.Forbidden, result.StatusCode); Assert.AreEqual(HttpStatusCode.Forbidden, result.StatusCode);
} }
@ -70,7 +69,7 @@ public partial class BaseFilesTests
[Description("put - file/{fileId}/share - share file to another user for read")] [Description("put - file/{fileId}/share - share file to another user for read")]
public async Task ShareFileToAnotherUserRead(int fileId, bool notify, string message) public async Task ShareFileToAnotherUserRead(int fileId, bool notify, string message)
{ {
var share = await PutAsync<IEnumerable<FileShareDto>>("file/" + fileId + "/share", JsonContent.Create(new { Share = _testFolderParamRead, Notify = notify, SharingMessage = message })); var share = await PutAsync<IEnumerable<FileShareDto>>($"file/{fileId}/share", new { Share = _testFolderParamRead, Notify = notify, SharingMessage = message });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -80,11 +79,10 @@ public partial class BaseFilesTests
[Description("put - files/file/{fileId} - try to update file which can only read")] [Description("put - files/file/{fileId} - try to update file which can only read")]
public async Task UpdateSharedFileReturnsFolderWrapperReadAsync(int fileId) public async Task UpdateSharedFileReturnsFolderWrapperReadAsync(int fileId)
{ {
var request = await _client.PutAsync("file/" + fileId, JsonContent.Create(new { Title = "newName", LastVersion = 0 })); var result = await SendAsync(HttpMethod.Put, "file/" + fileId, new { Title = "newName", LastVersion = 0 });
var result = await request.Content.ReadFromJsonAsync<SuccessApiResponse>();
Assert.That(HttpStatusCode.Forbidden == result.StatusCode); Assert.That(HttpStatusCode.Forbidden == result.StatusCode);
} }
#endregion #endregion
#region Shared Folder and File (Read and Write) #region Shared Folder and File (Read and Write)
@ -95,7 +93,7 @@ public partial class BaseFilesTests
[Description("put - files/folder/{folderId}/share - share folder to another user for read and write")] [Description("put - files/folder/{folderId}/share - share folder to another user for read and write")]
public async Task ShareFolderToAnotherUserReadAndWrite(int folderId, bool notify, string message) public async Task ShareFolderToAnotherUserReadAndWrite(int folderId, bool notify, string message)
{ {
var share = await PutAsync<IEnumerable<FileShareDto>>("folder/" + folderId + "/share", JsonContent.Create(new { Share = _testFolderParamReadAndWrite, Notify = notify, SharingMessage = message })); var share = await PutAsync<IEnumerable<FileShareDto>>($"folder/{folderId}/share", new { Share = _testFolderParamReadAndWrite, Notify = notify, SharingMessage = message });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -105,7 +103,7 @@ public partial class BaseFilesTests
[Description("put - files/folder/{folderId} - rename shared for read and write folder")] [Description("put - files/folder/{folderId} - rename shared for read and write folder")]
public async Task RenameSharedFolderReturnsFolderWrapperReadAndWrite(int folderId, string newTitle) public async Task RenameSharedFolderReturnsFolderWrapperReadAndWrite(int folderId, string newTitle)
{ {
var sharedFolder = await PutAsync<FolderDto<int>>("folder/" + folderId, JsonContent.Create(new { Title = newTitle })); var sharedFolder = await PutAsync<FolderDto<int>>($"folder/{folderId}", new { Title = newTitle });
Assert.IsNotNull(sharedFolder); Assert.IsNotNull(sharedFolder);
Assert.AreEqual(newTitle, sharedFolder.Title); Assert.AreEqual(newTitle, sharedFolder.Title);
@ -117,7 +115,7 @@ public partial class BaseFilesTests
[Description("put - files/file/{fileId}/share - share file to another user for read and write")] [Description("put - files/file/{fileId}/share - share file to another user for read and write")]
public async Task ShareFileToAnotherUserReadAndWrite(int fileId, bool notify, string message) public async Task ShareFileToAnotherUserReadAndWrite(int fileId, bool notify, string message)
{ {
var share = await PutAsync<IEnumerable<FileShareDto>>("file/" + fileId + "/share", JsonContent.Create(new { Share = _testFolderParamReadAndWrite, Notify = notify, SharingMessage = message })); var share = await PutAsync<IEnumerable<FileShareDto>>($"file/{fileId}/share", new { Share = _testFolderParamReadAndWrite, Notify = notify, SharingMessage = message });
Assert.IsNotNull(share); Assert.IsNotNull(share);
} }
@ -127,7 +125,7 @@ public partial class BaseFilesTests
[Description("put - files/file/{fileId} - update shared for read and write file")] [Description("put - files/file/{fileId} - update shared for read and write file")]
public async Task UpdateSharedFileReturnsFolderWrapperReadAndWrite(int fileId, string fileTitle, int lastVersion) public async Task UpdateSharedFileReturnsFolderWrapperReadAndWrite(int fileId, string fileTitle, int lastVersion)
{ {
var sharedFile = await PutAsync<FolderDto<int>>("file/" + fileId, JsonContent.Create(new { Title = fileTitle, LastVersion = lastVersion })); var sharedFile = await PutAsync<FolderDto<int>>($"file/{fileId}", new { Title = fileTitle, LastVersion = lastVersion });
Assert.IsNotNull(sharedFile); Assert.IsNotNull(sharedFile);
Assert.AreEqual(fileTitle + ".docx", sharedFile.Title); Assert.AreEqual(fileTitle + ".docx", sharedFile.Title);
@ -141,7 +139,7 @@ public partial class BaseFilesTests
[Description("get - files/folder/{folderId} - get shared folder")] [Description("get - files/folder/{folderId} - get shared folder")]
public async Task GetSharedFolderInfoReturnsFolderWrapperRead(int folderId, string folderName, int parentId) public async Task GetSharedFolderInfoReturnsFolderWrapperRead(int folderId, string folderName, int parentId)
{ {
var sharedFolder = await GetAsync<FolderDto<int>>("folder/" + folderId); var sharedFolder = await GetAsync<FolderDto<int>>($"folder/{folderId}");
Assert.IsNotNull(sharedFolder); Assert.IsNotNull(sharedFolder);
Assert.AreEqual(folderName, sharedFolder.Title); Assert.AreEqual(folderName, sharedFolder.Title);
@ -156,7 +154,7 @@ public partial class BaseFilesTests
[Description("get - files/file/{fileId} - get shared file")] [Description("get - files/file/{fileId} - get shared file")]
public async Task GetSharedFileInfoReturnsFolderWrapperRead(int fileId, string fileName) public async Task GetSharedFileInfoReturnsFolderWrapperRead(int fileId, string fileName)
{ {
var sharedFile = await GetAsync<FolderDto<int>>("file/" + fileId); var sharedFile = await GetAsync<FolderDto<int>>($"file/{fileId}");
Assert.IsNotNull(sharedFile); Assert.IsNotNull(sharedFile);
Assert.AreEqual(fileName, sharedFile.Title); Assert.AreEqual(fileName, sharedFile.Title);
@ -169,7 +167,7 @@ public partial class BaseFilesTests
[Description("delete - files/file/{fileId} - try delete shared file")] [Description("delete - files/file/{fileId} - try delete shared file")]
public async Task DeleteSharedFileReturnsFolderWrapperRead(int fileId, bool deleteAfter, bool immediately) public async Task DeleteSharedFileReturnsFolderWrapperRead(int fileId, bool deleteAfter, bool immediately)
{ {
var result = (await DeleteAsync<IEnumerable<FileOperationDto>>("file/" + fileId, JsonContent.Create(new { DeleteAfter = deleteAfter, Immediately = immediately }))).FirstOrDefault(); var result = (await DeleteAsync<IEnumerable<FileOperationDto>>($"file/{fileId}", new { DeleteAfter = deleteAfter, Immediately = immediately })).FirstOrDefault();
await WaitLongOperation(result, FilesCommonResource.ErrorMassage_SecurityException_DeleteFile); await WaitLongOperation(result, FilesCommonResource.ErrorMassage_SecurityException_DeleteFile);
} }
@ -181,7 +179,7 @@ public partial class BaseFilesTests
[Description("delete - files/folder/{folderId} - try delete shared folder")] [Description("delete - files/folder/{folderId} - try delete shared folder")]
public async Task DeleteSharedFolderReturnsFolderWrapperRead(int folderId, bool deleteAfter, bool immediately) public async Task DeleteSharedFolderReturnsFolderWrapperRead(int folderId, bool deleteAfter, bool immediately)
{ {
var result = (await DeleteAsync<IEnumerable<FileOperationDto>>("folder/" + folderId, JsonContent.Create(new { DeleteAfter = deleteAfter, Immediately = immediately }))).FirstOrDefault(); var result = (await DeleteAsync<IEnumerable<FileOperationDto>>($"folder/{folderId}", new { DeleteAfter = deleteAfter, Immediately = immediately })).FirstOrDefault();
await WaitLongOperation(result, FilesCommonResource.ErrorMassage_SecurityException_DeleteFolder); await WaitLongOperation(result, FilesCommonResource.ErrorMassage_SecurityException_DeleteFolder);
} }

View File

@ -31,11 +31,11 @@ public partial class BaseFilesTests
{ {
[Test] [Test]
[Category("Folder")] [Category("Folder")]
[Order(1)] [Order(100)]
[Description("put - files/fileops/emptytrash - empty trash")] [Description("put - files/fileops/emptytrash - empty trash")]
public async Task DeleteFileFromTrash() public async Task DeleteFileFromTrash()
{ {
await PutAsync<IEnumerable<FileOperationDto>>("fileops/emptytrash", null); await PutAsync<IEnumerable<FileOperationDto>>("fileops/emptytrash");
var statuses = await WaitLongOperation(); var statuses = await WaitLongOperation();
CheckStatuses(statuses); CheckStatuses(statuses);
} }