aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-10-23 20:41:19 +0800
committer杨宇千 <crupest@outlook.com>2019-10-23 20:41:19 +0800
commitb67a26248d5dde4c3909c29b92b8a182248bdcc1 (patch)
treeb005aa3d8bc34d8e710ce7fae30236c62dcbe712 /Timeline.Tests
parent9c9762b4ecbd816be98ee0dd606fe15cc253b415 (diff)
downloadtimeline-b67a26248d5dde4c3909c29b92b8a182248bdcc1.tar.gz
timeline-b67a26248d5dde4c3909c29b92b8a182248bdcc1.tar.bz2
timeline-b67a26248d5dde4c3909c29b92b8a182248bdcc1.zip
...
Diffstat (limited to 'Timeline.Tests')
-rw-r--r--Timeline.Tests/Controllers/UserControllerTest.cs17
-rw-r--r--Timeline.Tests/DatabaseTest.cs16
-rw-r--r--Timeline.Tests/IntegratedTests/AuthorizationTest.cs (renamed from Timeline.Tests/IntegratedTests/AuthorizationUnitTest.cs)4
-rw-r--r--Timeline.Tests/IntegratedTests/TokenTest.cs (renamed from Timeline.Tests/IntegratedTests/TokenUnitTest.cs)4
-rw-r--r--Timeline.Tests/IntegratedTests/UserTest.cs (renamed from Timeline.Tests/IntegratedTests/UserUnitTest.cs)63
-rw-r--r--Timeline.Tests/Mock/Data/TestUsers.cs2
6 files changed, 43 insertions, 63 deletions
diff --git a/Timeline.Tests/Controllers/UserControllerTest.cs b/Timeline.Tests/Controllers/UserControllerTest.cs
index 471ed851..781ec111 100644
--- a/Timeline.Tests/Controllers/UserControllerTest.cs
+++ b/Timeline.Tests/Controllers/UserControllerTest.cs
@@ -90,23 +90,6 @@ namespace Timeline.Tests.Controllers
}
[Fact]
- public async Task Put_BadUsername()
- {
- const string username = "aaa";
- const string password = "ppp";
- const bool administrator = true;
- _mockUserService.Setup(s => s.PutUser(username, password, administrator)).ThrowsAsync(new UsernameBadFormatException());
- var action = await _controller.Put(new UserPutRequest
- {
- Password = password,
- Administrator = administrator
- }, username);
- action.Result.Should().BeAssignableTo<BadRequestObjectResult>()
- .Which.Value.Should().BeAssignableTo<CommonResponse>()
- .Which.Code.Should().Be(Put.BadUsername);
- }
-
- [Fact]
public async Task Patch_Success()
{
const string username = "aaa";
diff --git a/Timeline.Tests/DatabaseTest.cs b/Timeline.Tests/DatabaseTest.cs
index f75ab71b..c45c0f66 100644
--- a/Timeline.Tests/DatabaseTest.cs
+++ b/Timeline.Tests/DatabaseTest.cs
@@ -32,21 +32,5 @@ namespace Timeline.Tests
_context.SaveChanges();
_context.UserAvatars.Count().Should().Be(1);
}
-
- [Fact]
- public void DeleteUserShouldAlsoDeleteDetail()
- {
- var user = _context.Users.First();
- _context.UserDetails.Add(new UserDetailEntity
- {
- UserId = user.Id
- });
- _context.SaveChanges();
- _context.UserDetails.Count().Should().Be(1);
-
- _context.Users.Remove(user);
- _context.SaveChanges();
- _context.UserDetails.Count().Should().Be(0);
- }
}
}
diff --git a/Timeline.Tests/IntegratedTests/AuthorizationUnitTest.cs b/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
index 588e4349..a31d98f5 100644
--- a/Timeline.Tests/IntegratedTests/AuthorizationUnitTest.cs
+++ b/Timeline.Tests/IntegratedTests/AuthorizationTest.cs
@@ -9,12 +9,12 @@ using Xunit;
namespace Timeline.Tests.IntegratedTests
{
- public class AuthorizationUnitTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
+ public class AuthorizationTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
{
private readonly TestApplication _testApp;
private readonly WebApplicationFactory<Startup> _factory;
- public AuthorizationUnitTest(WebApplicationFactory<Startup> factory)
+ public AuthorizationTest(WebApplicationFactory<Startup> factory)
{
_testApp = new TestApplication(factory);
_factory = _testApp.Factory;
diff --git a/Timeline.Tests/IntegratedTests/TokenUnitTest.cs b/Timeline.Tests/IntegratedTests/TokenTest.cs
index d30b9311..e9b6e1e9 100644
--- a/Timeline.Tests/IntegratedTests/TokenUnitTest.cs
+++ b/Timeline.Tests/IntegratedTests/TokenTest.cs
@@ -15,7 +15,7 @@ using static Timeline.ErrorCodes.Http.Token;
namespace Timeline.Tests.IntegratedTests
{
- public class TokenUnitTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
+ public class TokenTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
{
private const string CreateTokenUrl = "token/create";
private const string VerifyTokenUrl = "token/verify";
@@ -23,7 +23,7 @@ namespace Timeline.Tests.IntegratedTests
private readonly TestApplication _testApp;
private readonly WebApplicationFactory<Startup> _factory;
- public TokenUnitTest(WebApplicationFactory<Startup> factory)
+ public TokenTest(WebApplicationFactory<Startup> factory)
{
_testApp = new TestApplication(factory);
_factory = _testApp.Factory;
diff --git a/Timeline.Tests/IntegratedTests/UserUnitTest.cs b/Timeline.Tests/IntegratedTests/UserTest.cs
index b00648de..ec70b7e8 100644
--- a/Timeline.Tests/IntegratedTests/UserUnitTest.cs
+++ b/Timeline.Tests/IntegratedTests/UserTest.cs
@@ -14,12 +14,12 @@ using static Timeline.ErrorCodes.Http.User;
namespace Timeline.Tests.IntegratedTests
{
- public class UserUnitTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
+ public class UserTest : IClassFixture<WebApplicationFactory<Startup>>, IDisposable
{
private readonly TestApplication _testApp;
private readonly WebApplicationFactory<Startup> _factory;
- public UserUnitTest(WebApplicationFactory<Startup> factory)
+ public UserTest(WebApplicationFactory<Startup> factory)
{
_testApp = new TestApplication(factory);
_factory = _testApp.Factory;
@@ -31,7 +31,7 @@ namespace Timeline.Tests.IntegratedTests
}
[Fact]
- public async Task Get_Users_List()
+ public async Task Get_List_Success()
{
using var client = await _factory.CreateClientAsAdmin();
var res = await client.GetAsync("users");
@@ -41,7 +41,7 @@ namespace Timeline.Tests.IntegratedTests
}
[Fact]
- public async Task Get_Users_User()
+ public async Task Get_Single_Success()
{
using var client = await _factory.CreateClientAsAdmin();
var res = await client.GetAsync("users/" + MockUser.User.Username);
@@ -51,6 +51,14 @@ namespace Timeline.Tests.IntegratedTests
}
[Fact]
+ public async Task Get_InvalidModel()
+ {
+ using var client = await _factory.CreateClientAsAdmin();
+ var res = await client.GetAsync("users/aaa!a");
+ res.Should().BeInvalidModel();
+ }
+
+ [Fact]
public async Task Get_Users_404()
{
using var client = await _factory.CreateClientAsAdmin();
@@ -62,35 +70,21 @@ namespace Timeline.Tests.IntegratedTests
public static IEnumerable<object[]> Put_InvalidModel_Data()
{
- yield return new object[] { null, false };
- yield return new object[] { "p", null };
+ yield return new object[] { "aaa", null, false };
+ yield return new object[] { "aaa", "p", null };
+ yield return new object[] { "aa!a", "p", false };
}
[Theory]
[MemberData(nameof(Put_InvalidModel_Data))]
- public async Task Put_InvalidModel(string password, bool? administrator)
+ public async Task Put_InvalidModel(string username, string password, bool? administrator)
{
using var client = await _factory.CreateClientAsAdmin();
- const string url = "users/aaaaaaaa";
- (await client.PutAsJsonAsync(url,
+ (await client.PutAsJsonAsync("users/" + username,
new UserPutRequest { Password = password, Administrator = administrator }))
.Should().BeInvalidModel();
}
- [Fact]
- public async Task Put_BadUsername()
- {
- using var client = await _factory.CreateClientAsAdmin();
- var res = await client.PutAsJsonAsync("users/dsf fddf", new UserPutRequest
- {
- Password = "???",
- Administrator = false
- });
- res.Should().HaveStatusCode(400)
- .And.Should().HaveCommonBody()
- .Which.Code.Should().Be(Put.BadUsername);
- }
-
private async Task CheckAdministrator(HttpClient client, string username, bool administrator)
{
var res = await client.GetAsync("users/" + username);
@@ -139,6 +133,14 @@ namespace Timeline.Tests.IntegratedTests
}
[Fact]
+ public async Task Patch_InvalidModel()
+ {
+ using var client = await _factory.CreateClientAsAdmin();
+ var res = await client.PatchAsJsonAsync("users/aaa!a", new UserPatchRequest { });
+ res.Should().BeInvalidModel();
+ }
+
+ [Fact]
public async Task Patch_Success()
{
using var client = await _factory.CreateClientAsAdmin();
@@ -151,6 +153,15 @@ namespace Timeline.Tests.IntegratedTests
}
[Fact]
+ public async Task Delete_InvalidModel()
+ {
+ using var client = await _factory.CreateClientAsAdmin();
+ var url = "users/aaa!a";
+ var res = await client.DeleteAsync(url);
+ res.Should().BeInvalidModel();
+ }
+
+ [Fact]
public async Task Delete_Deleted()
{
using var client = await _factory.CreateClientAsAdmin();
@@ -176,7 +187,8 @@ namespace Timeline.Tests.IntegratedTests
{
yield return new[] { null, "uuu" };
yield return new[] { "uuu", null };
- yield return new[] { "uuu", "???" };
+ yield return new[] { "a!a", "uuu" };
+ yield return new[] { "uuu", "a!a" };
}
[Theory]
@@ -258,7 +270,8 @@ namespace Timeline.Tests.IntegratedTests
var res = await client.PostAsJsonAsync(changePasswordUrl,
new ChangePasswordRequest { OldPassword = MockUser.User.Password, NewPassword = newPassword });
res.Should().HaveStatusCode(200);
- await client.CreateUserTokenAsync(MockUser.User.Username, newPassword);
+ await _factory.CreateDefaultClient() // don't use client above, because it sets authorization header
+ .CreateUserTokenAsync(MockUser.User.Username, newPassword);
}
}
}
diff --git a/Timeline.Tests/Mock/Data/TestUsers.cs b/Timeline.Tests/Mock/Data/TestUsers.cs
index bc2df469..6b0a9997 100644
--- a/Timeline.Tests/Mock/Data/TestUsers.cs
+++ b/Timeline.Tests/Mock/Data/TestUsers.cs
@@ -35,7 +35,7 @@ namespace Timeline.Tests.Mock.Data
{
Name = user.Username,
EncryptedPassword = passwordService.HashPassword(user.Password),
- RoleString = UserUtility.IsAdminToRoleString(user.Administrator),
+ RoleString = UserRoleConvert.ToString(user.Administrator),
Avatar = UserAvatar.Create(DateTime.Now)
};
}