From 301780410580647b994e13bc2367153569d04634 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 14 Nov 2020 01:58:38 +0800 Subject: ... --- .../IntegratedTests/UserPermissionTest.cs | 64 +++++++++++----------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs') diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs index cf27a6c6..80f31be9 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs @@ -3,10 +3,10 @@ using System; using System.Collections.Generic; using System.Linq; using System.Net; -using System.Net.Http.Json; using System.Threading.Tasks; using Timeline.Models.Http; using Timeline.Services; +using Timeline.Tests.Helpers; using Xunit; namespace Timeline.Tests.IntegratedTests @@ -21,7 +21,7 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateDefaultClient(); var res = await client.GetAsync("users/admin"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } @@ -31,7 +31,7 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateDefaultClient(); var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEmpty(); } @@ -54,19 +54,19 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/admin"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } { - var res = await client.PutAsync($"users/admin/permissions/{permission}", null); + var res = await client.PutAsync($"users/admin/permissions/{permission}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/admin"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } } @@ -78,14 +78,14 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateClientAsAdministrator(); { - var res = await client.PutAsync($"users/user1/permissions/{permission}", null); + var res = await client.PutAsync($"users/user1/permissions/{permission}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } @@ -97,7 +97,7 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEmpty(); } } @@ -109,26 +109,26 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateClientAsAdministrator(); { - var res = await client.PutAsync($"users/user1/permissions/{permission}", null); + var res = await client.PutAsync($"users/user1/permissions/{permission}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } { - var res = await client.PutAsync($"users/user1/permissions/{permission}", null); + var res = await client.PutAsync($"users/user1/permissions/{permission}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } } @@ -147,7 +147,7 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEmpty(); } } @@ -158,39 +158,39 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateClientAsAdministrator(); { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}", null); + var res = await client.PutAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(UserPermission.AllTimelineManagement.ToString()); } { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}", null); + var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(UserPermission.AllTimelineManagement.ToString(), UserPermission.HighlightTimelineManangement.ToString()); } { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.UserManagement}", null); + var res = await client.PutAsync($"users/user1/permissions/{UserPermission.UserManagement}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo( UserPermission.AllTimelineManagement.ToString(), UserPermission.HighlightTimelineManangement.ToString(), @@ -205,7 +205,7 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo( UserPermission.AllTimelineManagement.ToString(), UserPermission.UserManagement.ToString()); @@ -219,19 +219,19 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(UserPermission.UserManagement.ToString()); } { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}", null); + var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); res.StatusCode.Should().Be(HttpStatusCode.OK); } { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo( UserPermission.HighlightTimelineManangement.ToString(), UserPermission.UserManagement.ToString()); } @@ -244,7 +244,7 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEquivalentTo(UserPermission.UserManagement.ToString()); } @@ -256,7 +256,7 @@ namespace Timeline.Tests.IntegratedTests { var res = await client.GetAsync("users/user1"); res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetJsonBodyAsync(); body.Permissions.Should().BeEmpty(); } } @@ -269,16 +269,16 @@ namespace Timeline.Tests.IntegratedTests using var client = await CreateClientAsAdministrator(); { - var res = await client.PutAsync(url, null); + var res = await client.PutAsync(url); res.StatusCode.Should().Be(HttpStatusCode.BadRequest); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetCommonBodyAsync(); body.Code.Should().Be(ErrorCodes.Common.InvalidModel); } { var res = await client.DeleteAsync(url); res.StatusCode.Should().Be(HttpStatusCode.BadRequest); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetCommonBodyAsync(); body.Code.Should().Be(ErrorCodes.Common.InvalidModel); } } @@ -291,16 +291,16 @@ namespace Timeline.Tests.IntegratedTests const string url = "users/user123/permissions/UserManagement"; { - var res = await client.PutAsync(url, null); + var res = await client.PutAsync(url); res.StatusCode.Should().Be(HttpStatusCode.NotFound); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetCommonBodyAsync(); body.Code.Should().Be(ErrorCodes.UserCommon.NotExist); } { var res = await client.DeleteAsync(url); res.StatusCode.Should().Be(HttpStatusCode.NotFound); - var body = await res.Content.ReadFromJsonAsync(); + var body = await res.Should().HaveAndGetCommonBodyAsync(); body.Code.Should().Be(ErrorCodes.UserCommon.NotExist); } } -- cgit v1.2.3 From 10d7b5aab88701bfe76c33c0573bec596cca297a Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 15 Nov 2020 16:50:01 +0800 Subject: ... --- .../IntegratedTests/HttpClientTestExtensions.cs | 15 ++ .../IntegratedTests/UserPermissionTest.cs | 175 +++++---------------- 2 files changed, 51 insertions(+), 139 deletions(-) (limited to 'BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs') diff --git a/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs index 3d85c2ae..cd884c5e 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs @@ -146,6 +146,11 @@ namespace Timeline.Tests.IntegratedTests await client.TestJsonSendAssertInvalidModelAsync(HttpMethod.Post, url, jsonBody); } + public static async Task TestPutAssertInvalidModelAsync(this HttpClient client, string url, object? jsonBody = null) + { + await client.TestJsonSendAssertInvalidModelAsync(HttpMethod.Put, url, jsonBody); + } + public static async Task TestDeleteAssertInvalidModelAsync(this HttpClient client, string url, object? jsonBody = null) { await client.TestJsonSendAssertInvalidModelAsync(HttpMethod.Delete, url, jsonBody); @@ -201,6 +206,16 @@ namespace Timeline.Tests.IntegratedTests await client.TestJsonSendAssertNotFoundAsync(HttpMethod.Get, url, jsonBody, errorCode, headerSetup); } + public static async Task TestPutAssertNotFoundAsync(this HttpClient client, string url, object? jsonBody = null, int? errorCode = null, HeaderSetup? headerSetup = null) + { + await client.TestJsonSendAssertNotFoundAsync(HttpMethod.Put, url, jsonBody, errorCode, headerSetup); + } + + public static async Task TestDeleteAssertNotFoundAsync(this HttpClient client, string url, object? jsonBody = null, int? errorCode = null, HeaderSetup? headerSetup = null) + { + await client.TestJsonSendAssertNotFoundAsync(HttpMethod.Delete, url, jsonBody, errorCode, headerSetup); + } + public static async Task TestPutByteArrayAsync(this HttpClient client, string url, byte[] body, string mimeType, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { using var content = new ByteArrayContent(body); diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs index 80f31be9..418dd0f9 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs @@ -2,11 +2,9 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Net; using System.Threading.Tasks; using Timeline.Models.Http; using Timeline.Services; -using Timeline.Tests.Helpers; using Xunit; namespace Timeline.Tests.IntegratedTests @@ -19,9 +17,7 @@ namespace Timeline.Tests.IntegratedTests public async Task RootUserShouldReturnAllPermissions() { using var client = await CreateDefaultClient(); - var res = await client.GetAsync("users/admin"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("admin"); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } @@ -29,9 +25,7 @@ namespace Timeline.Tests.IntegratedTests public async Task NonRootUserShouldReturnNonPermissions() { using var client = await CreateDefaultClient(); - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEmpty(); } @@ -46,27 +40,17 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.DeleteAsync($"users/admin/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/admin/permissions/{permission}"); { - var res = await client.GetAsync("users/admin"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("admin"); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } - { - var res = await client.PutAsync($"users/admin/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/admin/permissions/{permission}"); { - var res = await client.GetAsync("users/admin"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("users/admin"); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } } @@ -77,27 +61,17 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.PutAsync($"users/user1/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{permission}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } - { - var res = await client.DeleteAsync($"users/user1/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{permission}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEmpty(); } } @@ -108,27 +82,17 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.PutAsync($"users/user1/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{permission}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } - { - var res = await client.PutAsync($"users/user1/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{permission}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(permission.ToString()); } } @@ -139,15 +103,10 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.DeleteAsync($"users/user1/permissions/{permission}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{permission}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEmpty(); } } @@ -157,106 +116,66 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(UserPermission.AllTimelineManagement.ToString()); } - { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(UserPermission.AllTimelineManagement.ToString(), UserPermission.HighlightTimelineManangement.ToString()); } - { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.UserManagement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{UserPermission.UserManagement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo( UserPermission.AllTimelineManagement.ToString(), UserPermission.HighlightTimelineManangement.ToString(), UserPermission.UserManagement.ToString()); } - { - var res = await client.DeleteAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo( UserPermission.AllTimelineManagement.ToString(), UserPermission.UserManagement.ToString()); } - { - var res = await client.DeleteAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{UserPermission.AllTimelineManagement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(UserPermission.UserManagement.ToString()); } - { - var res = await client.PutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestPutAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo( UserPermission.HighlightTimelineManangement.ToString(), UserPermission.UserManagement.ToString()); } - { - var res = await client.DeleteAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{UserPermission.HighlightTimelineManangement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEquivalentTo(UserPermission.UserManagement.ToString()); } - { - var res = await client.DeleteAsync($"users/user1/permissions/{UserPermission.UserManagement}"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - } + await client.TestDeleteAsync($"users/user1/permissions/{UserPermission.UserManagement}"); { - var res = await client.GetAsync("users/user1"); - res.StatusCode.Should().Be(HttpStatusCode.OK); - var body = await res.Should().HaveAndGetJsonBodyAsync(); + var body = await client.GetUserAsync("user1"); body.Permissions.Should().BeEmpty(); } } @@ -268,19 +187,8 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsAdministrator(); - { - var res = await client.PutAsync(url); - res.StatusCode.Should().Be(HttpStatusCode.BadRequest); - var body = await res.Should().HaveAndGetCommonBodyAsync(); - body.Code.Should().Be(ErrorCodes.Common.InvalidModel); - } - - { - var res = await client.DeleteAsync(url); - res.StatusCode.Should().Be(HttpStatusCode.BadRequest); - var body = await res.Should().HaveAndGetCommonBodyAsync(); - body.Code.Should().Be(ErrorCodes.Common.InvalidModel); - } + await client.TestPutAssertInvalidModelAsync(url); + await client.TestDeleteAssertInvalidModelAsync(url); } [Fact] @@ -290,19 +198,8 @@ namespace Timeline.Tests.IntegratedTests const string url = "users/user123/permissions/UserManagement"; - { - var res = await client.PutAsync(url); - res.StatusCode.Should().Be(HttpStatusCode.NotFound); - var body = await res.Should().HaveAndGetCommonBodyAsync(); - body.Code.Should().Be(ErrorCodes.UserCommon.NotExist); - } - - { - var res = await client.DeleteAsync(url); - res.StatusCode.Should().Be(HttpStatusCode.NotFound); - var body = await res.Should().HaveAndGetCommonBodyAsync(); - body.Code.Should().Be(ErrorCodes.UserCommon.NotExist); - } + await client.TestPutAssertNotFoundAsync(url, errorCode: ErrorCodes.UserCommon.NotExist); + await client.TestDeleteAssertNotFoundAsync(url, errorCode: ErrorCodes.UserCommon.NotExist); } } } -- cgit v1.2.3 From 8e9b32914a1bcfe3206c13816d89d4247483ab48 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 15 Nov 2020 17:27:18 +0800 Subject: ... --- .../IntegratedTests/HttpClientTestExtensions.cs | 8 +++++- .../Timeline.Tests/IntegratedTests/TimelineTest.cs | 32 ++++++++++------------ .../Timeline.Tests/IntegratedTests/TokenTest.cs | 2 +- .../IntegratedTests/UserAvatarTest.cs | 2 +- .../IntegratedTests/UserPermissionTest.cs | 2 +- BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs | 4 +-- .../Timeline.Tests/Services/DatabaseBasedTest.cs | 2 +- .../Services/UserPermissionServiceTest.cs | 2 +- 8 files changed, 29 insertions(+), 25 deletions(-) (limited to 'BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs') diff --git a/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs index 9abe4b6b..7cff0c39 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/HttpClientTestExtensions.cs @@ -85,9 +85,15 @@ namespace Timeline.Tests.IntegratedTests public static async Task TestDeleteAsync(this HttpClient client, string url, bool? delete = null, HttpStatusCode expectedStatusCode = HttpStatusCode.OK) { - var body = await client.TestJsonSendAsync(HttpMethod.Delete, url, expectedStatusCode: expectedStatusCode); if (delete.HasValue) + { + var body = await client.TestJsonSendAsync(HttpMethod.Delete, url, expectedStatusCode: expectedStatusCode); body.Data.Delete.Should().Be(delete.Value); + } + else + { + await client.TestJsonSendAsync(HttpMethod.Delete, url, expectedStatusCode: expectedStatusCode); + } } public static async Task TestSendAssertErrorAsync(this HttpClient client, HttpMethod method, string url, HttpContent? body = null, HttpStatusCode expectedStatusCode = HttpStatusCode.BadRequest, int? errorCode = null, HeaderSetup? headerSetup = null) diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs index 1b7ed616..9845e1b1 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/TimelineTest.cs @@ -651,11 +651,11 @@ namespace Timeline.Tests.IntegratedTests } await CacheTestHelper.TestCache(client, $"timelines/{generator(1)}/posts/{postId}/data"); - await client.TestDeleteAsync($"timelines/{generator(1)}/posts/{postId}/data", true); - await client.TestDeleteAsync($"timelines/{generator(1)}/posts/{postId}/data", false); + await client.TestDeleteAsync($"timelines/{generator(1)}/posts/{postId}", true); + await client.TestDeleteAsync($"timelines/{generator(1)}/posts/{postId}", false); { - var body = await client.TestGetAsync>($"timelines/{generator(1)}/posts/{postId}/data"); + var body = await client.TestGetAsync>($"timelines/{generator(1)}/posts"); body.Should().BeEmpty(); } @@ -673,7 +673,7 @@ namespace Timeline.Tests.IntegratedTests { using var client = await CreateClientAsUser(); - await client.TestGetAssertErrorAsync($"timelines/{generator(1)}/posts/11234/data", errorCode: ErrorCodes.TimelineController.PostNotExist); + await client.TestGetAssertNotFoundAsync($"timelines/{generator(1)}/posts/11234/data", errorCode: ErrorCodes.TimelineController.PostNotExist); long postId; { @@ -804,7 +804,7 @@ namespace Timeline.Tests.IntegratedTests [Theory] [MemberData(nameof(TimelineNameGeneratorTestData))] - public async Task Timeline_Get_IfModifiedSince_And_CheckUniqueId(TimelineNameGenerator urlGenerator) + public async Task Timeline_Get_IfModifiedSince_And_CheckUniqueId(TimelineNameGenerator generator) { using var client = await CreateClientAsUser(); @@ -813,14 +813,14 @@ namespace Timeline.Tests.IntegratedTests string uniqueId; { - var body = await client.GetTimelineAsync(urlGenerator(1)); + var body = await client.GetTimelineAsync(generator(1)); timeline = body; lastModifiedTime = body.LastModified; uniqueId = body.UniqueId; } { - await client.TestGetAsync($"timelines/{urlGenerator(1)}", + await client.TestGetAsync($"timelines/{generator(1)}", expectedStatusCode: HttpStatusCode.NotModified, headerSetup: (headers, _) => { @@ -830,8 +830,7 @@ namespace Timeline.Tests.IntegratedTests { - var body = await client.TestGetAsync($"timelines/{urlGenerator(1)}", - expectedStatusCode: HttpStatusCode.NotModified, + var body = await client.TestGetAsync($"timelines/{generator(1)}", headerSetup: (headers, _) => { headers.IfModifiedSince = lastModifiedTime.AddSeconds(-1); @@ -840,21 +839,21 @@ namespace Timeline.Tests.IntegratedTests } { - await client.TestGetAsync($"timelines/{urlGenerator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }", expectedStatusCode: HttpStatusCode.NotModified); + await client.TestGetAsync($"timelines/{generator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }", expectedStatusCode: HttpStatusCode.NotModified); } { - var body = await client.TestGetAsync($"timelines/{urlGenerator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(-1).ToString("s", CultureInfo.InvariantCulture) }"); + var body = await client.TestGetAsync($"timelines/{generator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(-1).ToString("s", CultureInfo.InvariantCulture) }"); body.Should().BeEquivalentTo(timeline); } { - await client.TestGetAsync($"timelines/{urlGenerator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }&checkUniqueId={uniqueId}", expectedStatusCode: HttpStatusCode.NotModified); + await client.TestGetAsync($"timelines/{generator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }&checkUniqueId={uniqueId}", expectedStatusCode: HttpStatusCode.NotModified); } { var testUniqueId = (uniqueId[0] == 'a' ? "b" : "a") + uniqueId[1..]; - var body = await client.TestGetAsync($"timelines/{urlGenerator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }&checkUniqueId={testUniqueId}", expectedStatusCode: HttpStatusCode.NotModified); + var body = await client.TestGetAsync($"timelines/{generator(1)}?ifModifiedSince={lastModifiedTime.AddSeconds(1).ToString("s", CultureInfo.InvariantCulture) }&checkUniqueId={testUniqueId}"); body.Should().BeEquivalentTo(timeline); } } @@ -897,11 +896,10 @@ namespace Timeline.Tests.IntegratedTests using (var client = await CreateClientAsUser()) { await client.TestPostAssertInvalidModelAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "!!!", NewName = "tttttttt" }); - await client.TestPostAssertInvalidModelAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttt", NewName = "!!!!" }); + await client.TestPostAssertErrorAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttttt", NewName = "tttttttt" }, errorCode: ErrorCodes.TimelineController.NotExist); - await client.TestPostAssertInvalidModelAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "ttttt", NewName = "tttttttt" }); - await client.TestPostAssertInvalidModelAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "newt" }); + await client.TestPostAsync("timelineop/changename", new TimelineChangeNameRequest { OldName = "t1", NewName = "newt" }); await client.TestGetAsync("timelines/t1", expectedStatusCode: HttpStatusCode.NotFound); @@ -937,7 +935,7 @@ namespace Timeline.Tests.IntegratedTests } { - var res = await client.GetAsync($"timelines/{generator(1)}/posts{id}/data"); + var res = await client.GetAsync($"timelines/{generator(1)}/posts/{id}/data"); res.StatusCode.Should().Be(HttpStatusCode.OK); res.Headers.ETag.Should().NotBeNull(); res.Headers.ETag!.ToString().Should().Be(etag); diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs index 3c4a595d..c2f91eb1 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/TokenTest.cs @@ -144,7 +144,7 @@ namespace Timeline.Tests.IntegratedTests var createTokenResult = await CreateUserTokenAsync(client, "user1", "user1pw"); var body = await client.TestPostAsync(VerifyTokenUrl, new VerifyTokenRequest { Token = createTokenResult.Token }); - body.Should().BeEquivalentTo(await client.GetUserAsync("user1")); + body.User.Should().BeEquivalentTo(await client.GetUserAsync("user1")); } } } diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs index 79a3c2fa..893a5d28 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/UserAvatarTest.cs @@ -101,7 +101,7 @@ namespace Timeline.Tests.IntegratedTests { await client.TestPutByteArrayAssertErrorAsync("users/user1/avatar", new[] { (byte)0x00 }, "image/png", errorCode: ErrorCodes.UserAvatar.BadFormat_CantDecode); - await client.TestPutByteArrayAssertErrorAsync("users/user1/avatar", mockAvatar.Data, "image/png", errorCode: ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat); + await client.TestPutByteArrayAssertErrorAsync("users/user1/avatar", mockAvatar.Data, "image/jpeg", errorCode: ErrorCodes.UserAvatar.BadFormat_UnmatchedFormat); await client.TestPutByteArrayAssertErrorAsync("users/user1/avatar", ImageHelper.CreatePngWithSize(100, 200), "image/png", errorCode: ErrorCodes.UserAvatar.BadFormat_BadSize); } diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs index 418dd0f9..77cae590 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/UserPermissionTest.cs @@ -50,7 +50,7 @@ namespace Timeline.Tests.IntegratedTests await client.TestPutAsync($"users/admin/permissions/{permission}"); { - var body = await client.GetUserAsync("users/admin"); + var body = await client.GetUserAsync("admin"); body.Permissions.Should().BeEquivalentTo(Enum.GetNames()); } } diff --git a/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs index d13f6579..0d65478b 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/UserTest.cs @@ -84,7 +84,7 @@ namespace Timeline.Tests.IntegratedTests } { - var body = await client.GetUserAsync("users/newuser"); + var body = await client.GetUserAsync("newuser"); body.Nickname.Should().Be("aaa"); } @@ -215,7 +215,7 @@ namespace Timeline.Tests.IntegratedTests body.Username.Should().Be("aaa"); } { - var body = await client.GetUserAsync("users/aaa"); + var body = await client.GetUserAsync("aaa"); body.Username.Should().Be("aaa"); } { diff --git a/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs index 7c97158c..3bb6ebb5 100644 --- a/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs +++ b/BackEnd/Timeline.Tests/Services/DatabaseBasedTest.cs @@ -8,7 +8,7 @@ namespace Timeline.Tests.Services public abstract class DatabaseBasedTest : IAsyncLifetime { protected TestDatabase TestDatabase { get; } - protected DatabaseContext Database { get; private set; } + protected DatabaseContext Database { get; private set; } = default!; protected DatabaseBasedTest(bool databaseCreateUsers = true) { diff --git a/BackEnd/Timeline.Tests/Services/UserPermissionServiceTest.cs b/BackEnd/Timeline.Tests/Services/UserPermissionServiceTest.cs index cea11b34..5a4e4954 100644 --- a/BackEnd/Timeline.Tests/Services/UserPermissionServiceTest.cs +++ b/BackEnd/Timeline.Tests/Services/UserPermissionServiceTest.cs @@ -9,7 +9,7 @@ namespace Timeline.Tests.Services { public class UserPermissionServiceTest : DatabaseBasedTest { - private UserPermissionService _service; + private UserPermissionService _service = default!; public UserPermissionServiceTest() { -- cgit v1.2.3