From 56cd10828f090b4526196d012b0c2efb5033aced Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 20 Apr 2022 22:15:14 +0800 Subject: ... --- .../IntegratedTests2/IntegratedTestBase.cs | 22 ++++++++-------------- .../IntegratedTestPermissionTestExtensions.cs | 18 ++++++++++++++++++ .../IntegratedTests2/RegisterCodeTest.cs | 4 ++-- 3 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestPermissionTestExtensions.cs (limited to 'BackEnd') diff --git a/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestBase.cs b/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestBase.cs index d30c807d..cf2e8a64 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestBase.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestBase.cs @@ -14,16 +14,16 @@ namespace Timeline.Tests.IntegratedTests2 { public abstract class IntegratedTestBase : IAsyncLifetime { - protected TestApplication TestApp { get; } + public TestApplication TestApp { get; } - protected int TestUserCount { get; } + public int TestUserCount { get; } - protected string NormalUserToken { get; set; } = default!; - protected string AdminUserToken { get; set; } = default!; + public string NormalUserToken { get; set; } = default!; + public string AdminUserToken { get; set; } = default!; - protected HttpClient DefaultClient { get; set; } = default!; - protected HttpClient UserClient { get; set; } = default!; - protected HttpClient AdminClient { get; set; } = default!; + public HttpClient DefaultClient { get; set; } = default!; + public HttpClient UserClient { get; set; } = default!; + public HttpClient AdminClient { get; set; } = default!; public IntegratedTestBase(ITestOutputHelper testOutputHelper) : this(1, testOutputHelper) { @@ -140,12 +140,6 @@ namespace Timeline.Tests.IntegratedTests2 return CreateClientWithToken(NormalUserToken); } - public async Task TestOnlySelfAndAdminCanCall(HttpMethod httpMethod, string selfResourceUrl, string otherResourceUrl, object? body) - { - await DefaultClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body, expectedStatusCode: HttpStatusCode.Unauthorized); - await UserClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body); - await UserClient.TestJsonSendAsync(httpMethod, otherResourceUrl, body, expectedStatusCode: HttpStatusCode.Forbidden); - await AdminClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body); - } + } } diff --git a/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestPermissionTestExtensions.cs b/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestPermissionTestExtensions.cs new file mode 100644 index 00000000..ad67293b --- /dev/null +++ b/BackEnd/Timeline.Tests/IntegratedTests2/IntegratedTestPermissionTestExtensions.cs @@ -0,0 +1,18 @@ +using System; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Timeline.Tests.IntegratedTests2 +{ + public static class IntegratedTestPermissionTestExtensions + { + public static async Task TestOnlySelfAndAdminCanCall(this IntegratedTestBase testBase, HttpMethod httpMethod, string selfResourceUrl, string otherResourceUrl, object? body) + { + await testBase.DefaultClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body, expectedStatusCode: HttpStatusCode.Unauthorized); + await testBase.UserClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body); + await testBase.UserClient.TestJsonSendAsync(httpMethod, otherResourceUrl, body, expectedStatusCode: HttpStatusCode.Forbidden); + await testBase.AdminClient.TestJsonSendAsync(httpMethod, selfResourceUrl, body); + } + } +} diff --git a/BackEnd/Timeline.Tests/IntegratedTests2/RegisterCodeTest.cs b/BackEnd/Timeline.Tests/IntegratedTests2/RegisterCodeTest.cs index b840183e..d11c3250 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests2/RegisterCodeTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests2/RegisterCodeTest.cs @@ -52,8 +52,8 @@ namespace Timeline.Tests.IntegratedTests2 [Fact] public async Task PermissionTest() { - await TestOnlySelfAndAdminCanCall(HttpMethod.Get, "v2/users/user/registercode", "v2/users/admin/registercode", null); - await TestOnlySelfAndAdminCanCall(HttpMethod.Post, "v2/users/user/renewregistercode", "v2/users/admin/renewregistercode", null); + await this.TestOnlySelfAndAdminCanCall(HttpMethod.Get, "v2/users/user/registercode", "v2/users/admin/registercode", null); + await this.TestOnlySelfAndAdminCanCall(HttpMethod.Post, "v2/users/user/renewregistercode", "v2/users/admin/renewregistercode", null); } } } -- cgit v1.2.3