aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-01-30 21:15:18 +0800
committercrupest <crupest@outlook.com>2020-01-30 21:15:18 +0800
commitd988669de355df12d3be3c658e8617c275fe70dd (patch)
treeaa4df76441a44448dad3ee5e7b0d26bf80383259 /Timeline.Tests
parent79ab2b304d93b1029515bd3f954db4e5a73f4168 (diff)
downloadtimeline-d988669de355df12d3be3c658e8617c275fe70dd.tar.gz
timeline-d988669de355df12d3be3c658e8617c275fe70dd.tar.bz2
timeline-d988669de355df12d3be3c658e8617c275fe70dd.zip
...
Diffstat (limited to 'Timeline.Tests')
-rw-r--r--Timeline.Tests/IntegratedTests/IntegratedTestBase.cs3
-rw-r--r--Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs262
-rw-r--r--Timeline.Tests/IntegratedTests/TokenTest.cs36
-rw-r--r--Timeline.Tests/UsernameValidatorUnitTest.cs1
4 files changed, 130 insertions, 172 deletions
diff --git a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs b/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
index 721a25af..af3e0c2f 100644
--- a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
+++ b/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
@@ -106,8 +106,7 @@ namespace Timeline.Tests.IntegratedTests
public Task<HttpClient> CreateClientAs(int userNumber)
{
if (userNumber < 0)
- throw new ArgumentOutOfRangeException(nameof(userNumber), "User number can't be negative.");
-
+ return CreateDefaultClient();
if (userNumber == 0)
return CreateClientWithCredential("admin", "adminpw");
else
diff --git a/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs b/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
index 14600659..5c472e52 100644
--- a/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
+++ b/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
@@ -71,11 +71,10 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task Member_Should_Work()
{
- const string getUrl = "users/user/timeline";
- const string changeUrl = "users/user/timeline/op/member";
+ const string getUrl = "users/user1/timeline";
using var client = await CreateClientAsUser();
- async Task AssertMembers(IList<string> members)
+ async Task AssertMembers(IList<UserInfo> members)
{
var res = await client.GetAsync(getUrl);
res.Should().HaveStatusCode(200)
@@ -93,90 +92,85 @@ namespace Timeline.Tests.IntegratedTests
await AssertEmptyMembers();
{
- var res = await client.PostAsJsonAsync(changeUrl,
- new TimelineMemberChangeRequest { Add = new List<string> { "admin", "usernotexist" } });
+ var res = await client.PutAsync("/users/user1/timeline/members/usernotexist", null);
res.Should().HaveStatusCode(400)
- .And.HaveCommonBody()
- .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
- }
- {
- var res = await client.PostAsJsonAsync(changeUrl,
- new TimelineMemberChangeRequest { Remove = new List<string> { "admin", "usernotexist" } });
- res.Should().HaveStatusCode(400)
- .And.HaveCommonBody()
- .Which.Code.Should().Be(ErrorCodes.UserCommon.NotExist);
+ .And.HaveCommonBody(ErrorCodes.TimelineController.MemberPut_NotExist);
}
+ await AssertEmptyMembers();
{
- var res = await client.PostAsJsonAsync(changeUrl,
- new TimelineMemberChangeRequest { Add = new List<string> { "admin" }, Remove = new List<string> { "admin" } });
+ var res = await client.PutAsync("/users/user1/timeline/members/user2", null);
res.Should().HaveStatusCode(200);
- await AssertEmptyMembers();
}
+ await AssertMembers(new List<UserInfo> { UserInfoList[2] });
{
- var res = await client.PostAsJsonAsync(changeUrl,
- new TimelineMemberChangeRequest { Add = new List<string> { "admin" } });
- res.Should().HaveStatusCode(200);
- await AssertMembers(new List<string> { "admin" });
- }
+ var res = await client.DeleteAsync("/users/users1/timeline/members/users2");
+ res.Should().BeDelete(true);
+ }
+ await AssertEmptyMembers();
{
- var res = await client.PostAsJsonAsync(changeUrl,
- new TimelineMemberChangeRequest { Remove = new List<string> { "admin" } });
- res.Should().HaveStatusCode(200);
- await AssertEmptyMembers();
+ var res = await client.DeleteAsync("/users/users1/timeline/members/users2");
+ res.Should().BeDelete(false);
}
+ await AssertEmptyMembers();
}
[Theory]
- [InlineData(AuthType.None, 200, 401, 401, 401, 401)]
- [InlineData(AuthType.User, 200, 200, 403, 200, 403)]
- [InlineData(AuthType.Admin, 200, 200, 200, 200, 200)]
- public async Task Permission_Timeline(AuthType authType, int get, int opPropertyUser, int opPropertyAdmin, int opMemberUser, int opMemberAdmin)
+ [InlineData(-1, 200, 401, 401, 401, 401)]
+ [InlineData(1, 200, 200, 403, 200, 403)]
+ [InlineData(0, 200, 200, 200, 200, 200)]
+ public async Task Permission_Timeline(int userNumber, int get, int opPatchUser, int opPatchAdmin, int opMemberUser, int opMemberAdmin)
{
- using var client = await CreateClientAs(authType);
+ using var client = await CreateClientAs(userNumber);
{
- var res = await client.GetAsync("users/user/timeline");
+ var res = await client.GetAsync("users/user1/timeline");
res.Should().HaveStatusCode(get);
}
{
- var res = await client.PostAsJsonAsync("users/user/timeline/op/property",
- new TimelinePatchRequest { Description = "hahaha" });
- res.Should().HaveStatusCode(opPropertyUser);
+ var res = await client.PatchAsJsonAsync("users/user1/timeline", new TimelinePatchRequest { Description = "hahaha" });
+ res.Should().HaveStatusCode(opPatchUser);
}
{
- var res = await client.PostAsJsonAsync("users/admin/timeline/op/property",
- new TimelinePatchRequest { Description = "hahaha" });
- res.Should().HaveStatusCode(opPropertyAdmin);
+ var res = await client.PatchAsJsonAsync("users/admin/timeline", new TimelinePatchRequest { Description = "hahaha" });
+ res.Should().HaveStatusCode(opPatchAdmin);
}
{
- var res = await client.PostAsJsonAsync("users/user/timeline/op/member",
- new TimelineMemberChangeRequest { Add = new List<string> { "admin" } });
+ var res = await client.PutAsync("users/user1/timeline/member/user2", null);
+ res.Should().HaveStatusCode(opMemberUser);
+ }
+
+ {
+ var res = await client.DeleteAsync("users/user1/timeline/member/user2");
res.Should().HaveStatusCode(opMemberUser);
}
{
- var res = await client.PostAsJsonAsync("users/admin/timeline/op/member",
- new TimelineMemberChangeRequest { Add = new List<string> { "user" } });
+ var res = await client.PutAsync("users/admin/timeline/member/user2", null);
+ res.Should().HaveStatusCode(opMemberAdmin);
+ }
+
+ {
+ var res = await client.DeleteAsync("users/admin/timeline/member/user2");
res.Should().HaveStatusCode(opMemberAdmin);
}
}
[Fact]
- public async Task Permission_GetPost()
+ public async Task Visibility_Test()
{
- const string userUrl = "users/user/timeline/posts";
+ const string userUrl = "users/user1/timeline/posts";
const string adminUrl = "users/admin/timeline/posts";
{
using var client = await CreateClientAsUser();
- var res = await client.PostAsync("users/user/timeline/op/property",
+ var res = await client.PatchAsync("users/user1/timeline",
new StringContent(@"{""visibility"":""abcdefg""}", System.Text.Encoding.UTF8, System.Net.Mime.MediaTypeNames.Application.Json));
res.Should().BeInvalidModel();
}
{ // default visibility is registered
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var res = await client.GetAsync(userUrl);
res.Should().HaveStatusCode(403);
}
@@ -191,12 +185,12 @@ namespace Timeline.Tests.IntegratedTests
{ // change visibility to public
{
using var client = await CreateClientAsUser();
- var res = await client.PostAsJsonAsync("users/user/timeline/op/property",
+ var res = await client.PatchAsJsonAsync("users/user1/timeline",
new TimelinePatchRequest { Visibility = TimelineVisibility.Public });
res.Should().HaveStatusCode(200);
}
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var res = await client.GetAsync(userUrl);
res.Should().HaveStatusCode(200);
}
@@ -204,20 +198,20 @@ namespace Timeline.Tests.IntegratedTests
{ // change visibility to private
{
- using var client = await CreateClientAsAdmin();
+ using var client = await CreateClientAsAdministrator();
{
- var res = await client.PostAsJsonAsync("users/user/timeline/op/property",
+ var res = await client.PatchAsJsonAsync("users/user1/timeline",
new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
res.Should().HaveStatusCode(200);
}
{
- var res = await client.PostAsJsonAsync("users/admin/timeline/op/property",
+ var res = await client.PatchAsJsonAsync("users/admin/timeline",
new TimelinePatchRequest { Visibility = TimelineVisibility.Private });
res.Should().HaveStatusCode(200);
}
}
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var res = await client.GetAsync(userUrl);
res.Should().HaveStatusCode(403);
}
@@ -227,14 +221,13 @@ namespace Timeline.Tests.IntegratedTests
res.Should().HaveStatusCode(403);
}
{ // admin can read user's
- using var client = await CreateClientAsAdmin();
+ using var client = await CreateClientAsAdministrator();
var res = await client.GetAsync(userUrl);
res.Should().HaveStatusCode(200);
}
{ // add member
- using var client = await CreateClientAsAdmin();
- var res = await client.PostAsJsonAsync("users/admin/timeline/op/member",
- new TimelineMemberChangeRequest { Add = new List<string> { "user" } });
+ using var client = await CreateClientAsAdministrator();
+ var res = await client.PutAsync("/users/admin/timeline/members/user1", null);
res.Should().HaveStatusCode(200);
}
{ // now user can read admin's
@@ -249,19 +242,16 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task Permission_Post_Create()
{
- CreateExtraMockUsers(1);
-
using (var client = await CreateClientAsUser())
{
- var res = await client.PostAsJsonAsync("users/user/timeline/op/member",
- new TimelineMemberChangeRequest { Add = new List<string> { "user0" } });
+ var res = await client.PutAsync("users/user/timeline/members/user2", null);
res.Should().HaveStatusCode(200);
}
- using (var client = await CreateClientWithNoAuth())
+ using (var client = await CreateDefaultClient())
{
{ // no auth should get 401
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(401);
}
@@ -270,30 +260,30 @@ namespace Timeline.Tests.IntegratedTests
using (var client = await CreateClientAsUser())
{
{ // post self's
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(200);
}
{ // post other not as a member should get 403
- var res = await client.PostAsJsonAsync("users/admin/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/admin/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(403);
}
}
- using (var client = await CreateClientAsAdmin())
+ using (var client = await CreateClientAsAdministrator())
{
{ // post as admin
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(200);
}
}
- using (var client = await CreateClientAs(ExtraMockUsers[0]))
+ using (var client = await CreateClientAs(2))
{
{ // post as member
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/postop/create",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(200);
}
@@ -303,69 +293,66 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task Permission_Post_Delete()
{
- CreateExtraMockUsers(2);
-
- async Task<long> CreatePost(MockUser auth, string timeline)
+ async Task<long> CreatePost(int userNumber)
{
- using var client = await CreateClientAs(auth);
- var res = await client.PostAsJsonAsync($"users/{timeline}/timeline/postop/create",
+ using var client = await CreateClientAs(userNumber);
+ var res = await client.PostAsJsonAsync($"users/user1/timeline/postop/create",
new TimelinePostCreateRequest { Content = "aaa" });
return res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<TimelinePostCreateResponse>()
+ .And.HaveJsonBody<TimelinePostInfo>()
.Which.Id;
}
using (var client = await CreateClientAsUser())
{
- var res = await client.PostAsJsonAsync("users/user/timeline/op/member",
- new TimelineMemberChangeRequest { Add = new List<string> { "user0", "user1" } });
- res.Should().HaveStatusCode(200);
+ {
+ var res = await client.PutAsync("users/user1/timeline/members/user2", null);
+ res.Should().HaveStatusCode(200);
+ }
+ {
+ var res = await client.PutAsync("users/user1/timeline/members/user3", null);
+ res.Should().HaveStatusCode(200);
+ }
}
{ // no auth should get 401
- using var client = await CreateClientWithNoAuth();
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = 12 });
+ using var client = await CreateDefaultClient();
+ var res = await client.DeleteAsync("users/user1/timeline/posts/12");
res.Should().HaveStatusCode(401);
}
{ // self can delete self
- var postId = await CreatePost(MockUser.Ordinary, "user");
+ var postId = await CreatePost(1);
using var client = await CreateClientAsUser();
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = postId });
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{postId}");
res.Should().HaveStatusCode(200);
}
{ // admin can delete any
- var postId = await CreatePost(MockUser.Ordinary, "user");
- using var client = await CreateClientAsAdmin();
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = postId });
+ var postId = await CreatePost(1);
+ using var client = await CreateClientAsAdministrator();
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{postId}");
res.Should().HaveStatusCode(200);
}
{ // owner can delete other
- var postId = await CreatePost(ExtraMockUsers[0], "user");
+ var postId = await CreatePost(2);
using var client = await CreateClientAsUser();
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = postId });
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{postId}");
res.Should().HaveStatusCode(200);
}
{ // author can delete self
- var postId = await CreatePost(ExtraMockUsers[0], "user");
- using var client = await CreateClientAs(ExtraMockUsers[0]);
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = postId });
+ var postId = await CreatePost(2);
+ using var client = await CreateClientAs(2);
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{postId}");
res.Should().HaveStatusCode(200);
}
{ // otherwise is forbidden
- var postId = await CreatePost(ExtraMockUsers[0], "user");
- using var client = await CreateClientAs(ExtraMockUsers[1]);
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = postId });
+ var postId = await CreatePost(2);
+ using var client = await CreateClientAs(3);
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{postId}");
res.Should().HaveStatusCode(403);
}
}
@@ -376,96 +363,69 @@ namespace Timeline.Tests.IntegratedTests
{
using var client = await CreateClientAsUser();
{
- var res = await client.GetAsync("users/user/timeline/posts");
+ var res = await client.GetAsync("users/user1/timeline/posts");
res.Should().HaveStatusCode(200)
.And.HaveJsonBody<TimelinePostInfo[]>()
.Which.Should().NotBeNull().And.BeEmpty();
}
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = null });
res.Should().BeInvalidModel();
}
const string mockContent = "aaa";
- TimelinePostCreateResponse createRes;
+ TimelinePostInfo createRes;
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = mockContent });
var body = res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<TimelinePostCreateResponse>()
+ .And.HaveJsonBody<TimelinePostInfo>()
.Which;
body.Should().NotBeNull();
+ body.Content.Should().Be(mockContent);
+ body.Author.Should().Be(UserInfoList[1]);
createRes = body;
}
{
- var res = await client.GetAsync("users/user/timeline/posts");
+ var res = await client.GetAsync("users/user1/timeline/posts");
res.Should().HaveStatusCode(200)
.And.HaveJsonBody<TimelinePostInfo[]>()
- .Which.Should().NotBeNull().And.BeEquivalentTo(
- new TimelinePostInfo
- {
- Id = createRes.Id,
- Author = "user",
- Content = mockContent,
- Time = createRes.Time
- });
+ .Which.Should().NotBeNull().And.BeEquivalentTo(createRes);
}
const string mockContent2 = "bbb";
var mockTime2 = DateTime.Now.AddDays(-1);
- TimelinePostCreateResponse createRes2;
+ TimelinePostInfo createRes2;
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = mockContent2, Time = mockTime2 });
var body = res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<TimelinePostCreateResponse>()
+ .And.HaveJsonBody<TimelinePostInfo>()
.Which;
- body.Should().NotBeNull();
+ body.Should().NotBeNull();
+ body.Content.Should().Be(mockContent);
+ body.Author.Should().Be(UserInfoList[1]);
+ body.Time.Should().Be(mockTime2);
createRes2 = body;
}
{
- var res = await client.GetAsync("users/user/timeline/posts");
+ var res = await client.GetAsync("users/user1/timeline/posts");
res.Should().HaveStatusCode(200)
.And.HaveJsonBody<TimelinePostInfo[]>()
- .Which.Should().NotBeNull().And.BeEquivalentTo(
- new TimelinePostInfo
- {
- Id = createRes.Id,
- Author = "user",
- Content = mockContent,
- Time = createRes.Time
- },
- new TimelinePostInfo
- {
- Id = createRes2.Id,
- Author = "user",
- Content = mockContent2,
- Time = createRes2.Time
- });
+ .Which.Should().NotBeNull().And.BeEquivalentTo(createRes, createRes2);
}
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = createRes.Id });
- res.Should().HaveStatusCode(200);
+ var res = await client.DeleteAsync($"users/user1/timeline/posts/{createRes.Id}");
+ res.Should().BeDelete(true);
}
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/delete",
- new TimelinePostDeleteRequest { Id = 30000 });
- res.Should().HaveStatusCode(400)
- .And.HaveCommonBody()
- .Which.Code.Should().Be(ErrorCodes.TimelineController.PostOperationDelete_NotExist);
+ var res = await client.DeleteAsync("users/user1/timeline/posts/30000");
+ res.Should().BeDelete(false);
}
{
- var res = await client.GetAsync("users/user/timeline/posts");
+ var res = await client.GetAsync("users/user1/timeline/posts");
res.Should().HaveStatusCode(200)
.And.HaveJsonBody<TimelinePostInfo[]>()
- .Which.Should().NotBeNull().And.BeEquivalentTo(
- new TimelinePostInfo
- {
- Id = createRes2.Id,
- Author = "user",
- Content = mockContent2,
- Time = createRes2.Time
- });
+ .Which.Should().NotBeNull().And.BeEquivalentTo(createRes2);
}
}
}
@@ -477,10 +437,10 @@ namespace Timeline.Tests.IntegratedTests
async Task<long> CreatePost(DateTime time)
{
- var res = await client.PostAsJsonAsync("users/user/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa", Time = time });
return res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<TimelinePostCreateResponse>()
+ .And.HaveJsonBody<TimelinePostInfo>()
.Which.Id;
}
diff --git a/Timeline.Tests/IntegratedTests/TokenTest.cs b/Timeline.Tests/IntegratedTests/TokenTest.cs
index 8ee19999..ec7514ff 100644
--- a/Timeline.Tests/IntegratedTests/TokenTest.cs
+++ b/Timeline.Tests/IntegratedTests/TokenTest.cs
@@ -41,7 +41,7 @@ namespace Timeline.Tests.IntegratedTests
[MemberData(nameof(CreateToken_InvalidModel_Data))]
public async Task CreateToken_InvalidModel(string username, string password, int expire)
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
(await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest
{
Username = username,
@@ -53,14 +53,14 @@ namespace Timeline.Tests.IntegratedTests
public static IEnumerable<object[]> CreateToken_UserCredential_Data()
{
yield return new[] { "usernotexist", "p" };
- yield return new[] { MockUser.Ordinary.Username, "???" };
+ yield return new[] { "user1", "???" };
}
[Theory]
[MemberData(nameof(CreateToken_UserCredential_Data))]
public async void CreateToken_UserCredential(string username, string password)
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var response = await client.PostAsJsonAsync(CreateTokenUrl,
new CreateTokenRequest { Username = username, Password = password });
response.Should().HaveStatusCode(400)
@@ -71,19 +71,19 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task CreateToken_Success()
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var response = await client.PostAsJsonAsync(CreateTokenUrl,
- new CreateTokenRequest { Username = MockUser.Ordinary.Username, Password = MockUser.Ordinary.Password });
+ new CreateTokenRequest { Username = "user1", Password = "user1pw" });
var body = response.Should().HaveStatusCode(200)
.And.HaveJsonBody<CreateTokenResponse>().Which;
body.Token.Should().NotBeNullOrWhiteSpace();
- body.User.Should().BeEquivalentTo(MockUser.Ordinary.Info);
+ body.User.Should().BeEquivalentTo(UserInfoForAdminList[1]);
}
[Fact]
public async Task VerifyToken_InvalidModel()
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
(await client.PostAsJsonAsync(VerifyTokenUrl,
new VerifyTokenRequest { Token = null })).Should().BeInvalidModel();
}
@@ -91,7 +91,7 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task VerifyToken_BadFormat()
{
- using var client = await CreateClientWithNoAuth();
+ using var client = await CreateDefaultClient();
var response = await client.PostAsJsonAsync(VerifyTokenUrl,
new VerifyTokenRequest { Token = "bad token hahaha" });
response.Should().HaveStatusCode(400)
@@ -102,14 +102,14 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task VerifyToken_OldVersion()
{
- using var client = await CreateClientWithNoAuth();
- var token = (await CreateUserTokenAsync(client, MockUser.Ordinary.Username, MockUser.Ordinary.Password)).Token;
+ using var client = await CreateDefaultClient();
+ var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
- using (var scope = Factory.Server.Host.Services.CreateScope()) // UserService is scoped.
+ using (var scope = Factory.Services.CreateScope()) // UserService is scoped.
{
// create a user for test
var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
- await userService.PatchUser(MockUser.Ordinary.Username, null, null);
+ await userService.ModifyUser("user1", new User { Password = "user1pw" });
}
(await client.PostAsJsonAsync(VerifyTokenUrl,
@@ -122,13 +122,13 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task VerifyToken_UserNotExist()
{
- using var client = await CreateClientWithNoAuth();
- var token = (await CreateUserTokenAsync(client, MockUser.Ordinary.Username, MockUser.Ordinary.Password)).Token;
+ using var client = await CreateDefaultClient();
+ var token = (await CreateUserTokenAsync(client, "user1", "user1pw")).Token;
using (var scope = Factory.Server.Host.Services.CreateScope()) // UserService is scoped.
{
var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
- await userService.DeleteUser(MockUser.Ordinary.Username);
+ await userService.DeleteUser("user1");
}
(await client.PostAsJsonAsync(VerifyTokenUrl,
@@ -159,13 +159,13 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task VerifyToken_Success()
{
- using var client = await CreateClientWithNoAuth();
- var createTokenResult = await CreateUserTokenAsync(client, MockUser.Ordinary.Username, MockUser.Ordinary.Password);
+ using var client = await CreateDefaultClient();
+ var createTokenResult = await CreateUserTokenAsync(client, "user1", "user1pw");
var response = await client.PostAsJsonAsync(VerifyTokenUrl,
new VerifyTokenRequest { Token = createTokenResult.Token });
response.Should().HaveStatusCode(200)
.And.HaveJsonBody<VerifyTokenResponse>()
- .Which.User.Should().BeEquivalentTo(MockUser.Ordinary.Info);
+ .Which.User.Should().BeEquivalentTo(UserInfoForAdminList[1]);
}
}
}
diff --git a/Timeline.Tests/UsernameValidatorUnitTest.cs b/Timeline.Tests/UsernameValidatorUnitTest.cs
index e0f4633f..1a09d477 100644
--- a/Timeline.Tests/UsernameValidatorUnitTest.cs
+++ b/Timeline.Tests/UsernameValidatorUnitTest.cs
@@ -5,7 +5,6 @@ using Xunit;
namespace Timeline.Tests
{
- [UseCulture("en")]
public class UsernameValidatorUnitTest : IClassFixture<UsernameValidator>
{
private readonly UsernameValidator _validator;