aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-08-17 20:39:12 +0800
committer杨宇千 <crupest@outlook.com>2019-08-17 20:39:12 +0800
commit1fcd4c0daace2532757f797be2e33768b9d2cccd (patch)
treececc5b93150f7b1e3be792de5c058433b5e40982
parent4791d81ffe50d20c5e7e2f6f2ef91b519cb639ea (diff)
downloadtimeline-1fcd4c0daace2532757f797be2e33768b9d2cccd.tar.gz
timeline-1fcd4c0daace2532757f797be2e33768b9d2cccd.tar.bz2
timeline-1fcd4c0daace2532757f797be2e33768b9d2cccd.zip
Add unit tests for change username.
-rw-r--r--Timeline.Tests/UserUnitTest.cs75
1 files changed, 74 insertions, 1 deletions
diff --git a/Timeline.Tests/UserUnitTest.cs b/Timeline.Tests/UserUnitTest.cs
index 7bf12ad8..77ec37ee 100644
--- a/Timeline.Tests/UserUnitTest.cs
+++ b/Timeline.Tests/UserUnitTest.cs
@@ -185,6 +185,80 @@ namespace Timeline.Tests
}
}
+
+ public class ChangeUsernameUnitTest : IClassFixture<MyWebApplicationFactory<Startup>>, IDisposable
+ {
+ private const string url = "userop/changeusername";
+
+ private readonly WebApplicationFactory<Startup> _factory;
+ private readonly Action _disposeAction;
+
+ public ChangeUsernameUnitTest(MyWebApplicationFactory<Startup> factory, ITestOutputHelper outputHelper)
+ {
+ _factory = factory.WithTestConfig(outputHelper, out _disposeAction);
+ }
+
+ public void Dispose()
+ {
+ _disposeAction();
+ }
+
+ [Fact]
+ public async Task InvalidModel()
+ {
+ using (var client = await _factory.CreateClientAsAdmin())
+ {
+ // missing old username
+ await InvalidModelTestHelpers.TestPostInvalidModel(client, url,
+ new ChangeUsernameRequest { OldUsername= null, NewUsername= "hhh" });
+ // missing new username
+ await InvalidModelTestHelpers.TestPostInvalidModel(client, url,
+ new ChangeUsernameRequest { OldUsername= "hhh", NewUsername= null });
+ // bad username
+ await InvalidModelTestHelpers.TestPostInvalidModel(client, url,
+ new ChangeUsernameRequest { OldUsername = "hhh", NewUsername = "???" });
+ }
+ }
+
+ [Fact]
+ public async Task UserNotExist()
+ {
+ using (var client = await _factory.CreateClientAsAdmin())
+ {
+ var res = await client.PostAsJsonAsync(url,
+ new ChangeUsernameRequest{ OldUsername= "usernotexist", NewUsername= "newUsername" });
+ res.Should().HaveStatusCodeBadRequest()
+ .And.Should().HaveBodyAsCommonResponseWithCode(UserController.ErrorCodes.ChangeUsername_NotExist);
+ }
+ }
+
+ [Fact]
+ public async Task UserAlreadyExist()
+ {
+ using (var client = await _factory.CreateClientAsAdmin())
+ {
+ var res = await client.PostAsJsonAsync(url,
+ new ChangeUsernameRequest { OldUsername = MockUsers.UserUsername, NewUsername = MockUsers.AdminUsername });
+ res.Should().HaveStatusCodeBadRequest()
+ .And.Should().HaveBodyAsCommonResponseWithCode(UserController.ErrorCodes.ChangeUsername_AlreadyExist);
+ }
+ }
+
+ [Fact]
+ public async Task Success()
+ {
+ using (var client = await _factory.CreateClientAsAdmin())
+ {
+ const string newUsername = "hahaha";
+ var res = await client.PostAsJsonAsync(url,
+ new ChangeUsernameRequest { OldUsername = MockUsers.UserUsername, NewUsername = newUsername });
+ res.Should().HaveStatusCodeOk();
+ await client.CreateUserTokenAsync(newUsername, MockUsers.UserPassword);
+ }
+ }
+ }
+
+
public class ChangePasswordUnitTest : IClassFixture<MyWebApplicationFactory<Startup>>, IDisposable
{
private const string url = "userop/changepassword";
@@ -202,7 +276,6 @@ namespace Timeline.Tests
_disposeAction();
}
-
[Fact]
public async Task InvalidModel()
{