aboutsummaryrefslogtreecommitdiff
path: root/Timeline.Tests
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-01-30 23:49:02 +0800
committercrupest <crupest@outlook.com>2020-01-30 23:49:02 +0800
commit5aaa4f95e6bdd46e6740c1ecbbd46bdf415eedd2 (patch)
tree70ddc26cf29bdf4b19e9a746cac6017845e009fc /Timeline.Tests
parentd988669de355df12d3be3c658e8617c275fe70dd (diff)
downloadtimeline-5aaa4f95e6bdd46e6740c1ecbbd46bdf415eedd2.tar.gz
timeline-5aaa4f95e6bdd46e6740c1ecbbd46bdf415eedd2.tar.bz2
timeline-5aaa4f95e6bdd46e6740c1ecbbd46bdf415eedd2.zip
Finish reafctor, TODO: Database migration.
Diffstat (limited to 'Timeline.Tests')
-rw-r--r--Timeline.Tests/Helpers/TestApplication.cs12
-rw-r--r--Timeline.Tests/IntegratedTests/IntegratedTestBase.cs2
-rw-r--r--Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs28
-rw-r--r--Timeline.Tests/IntegratedTests/UserAvatarTest.cs2
-rw-r--r--Timeline.Tests/IntegratedTests/UserTest.cs8
-rw-r--r--Timeline.Tests/UsernameValidatorUnitTest.cs8
6 files changed, 32 insertions, 28 deletions
diff --git a/Timeline.Tests/Helpers/TestApplication.cs b/Timeline.Tests/Helpers/TestApplication.cs
index 14cafea3..bc5deeec 100644
--- a/Timeline.Tests/Helpers/TestApplication.cs
+++ b/Timeline.Tests/Helpers/TestApplication.cs
@@ -17,10 +17,20 @@ namespace Timeline.Tests.Helpers
public TestApplication(WebApplicationFactory<Startup> factory)
{
DatabaseConnection = new SqliteConnection("Data Source=:memory:;");
+ DatabaseConnection.Open();
+
+ var options = new DbContextOptionsBuilder<DevelopmentDatabaseContext>()
+ .UseSqlite(DatabaseConnection)
+ .Options;
+
+ using (var context = new DevelopmentDatabaseContext(options))
+ {
+ context.Database.EnsureCreated();
+ }
Factory = factory.WithWebHostBuilder(builder =>
{
- builder.ConfigureTestServices(services =>
+ builder.ConfigureServices(services =>
{
services.AddDbContext<DatabaseContext, DevelopmentDatabaseContext>(options =>
{
diff --git a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs b/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
index af3e0c2f..242e96cd 100644
--- a/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
+++ b/Timeline.Tests/IntegratedTests/IntegratedTestBase.cs
@@ -63,7 +63,7 @@ namespace Timeline.Tests.IntegratedTests
foreach (var user in users)
{
- userService.CreateUser(user);
+ userService.CreateUser(user).Wait();
userInfoList.Add(mapper.Map<UserInfo>(user));
userInfoForAdminList.Add(mapper.Map<UserInfoForAdmin>(user));
}
diff --git a/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs b/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
index 5c472e52..d787d87d 100644
--- a/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
+++ b/Timeline.Tests/IntegratedTests/PersonalTimelineTest.cs
@@ -103,12 +103,12 @@ namespace Timeline.Tests.IntegratedTests
}
await AssertMembers(new List<UserInfo> { UserInfoList[2] });
{
- var res = await client.DeleteAsync("/users/users1/timeline/members/users2");
+ var res = await client.DeleteAsync("/users/user1/timeline/members/user2");
res.Should().BeDelete(true);
}
await AssertEmptyMembers();
{
- var res = await client.DeleteAsync("/users/users1/timeline/members/users2");
+ var res = await client.DeleteAsync("/users/user1/timeline/members/users2");
res.Should().BeDelete(false);
}
await AssertEmptyMembers();
@@ -137,22 +137,22 @@ namespace Timeline.Tests.IntegratedTests
}
{
- var res = await client.PutAsync("users/user1/timeline/member/user2", null);
+ var res = await client.PutAsync("users/user1/timeline/members/user2", null);
res.Should().HaveStatusCode(opMemberUser);
}
{
- var res = await client.DeleteAsync("users/user1/timeline/member/user2");
+ var res = await client.DeleteAsync("users/user1/timeline/members/user2");
res.Should().HaveStatusCode(opMemberUser);
}
{
- var res = await client.PutAsync("users/admin/timeline/member/user2", null);
+ var res = await client.PutAsync("users/admin/timeline/members/user2", null);
res.Should().HaveStatusCode(opMemberAdmin);
}
{
- var res = await client.DeleteAsync("users/admin/timeline/member/user2");
+ var res = await client.DeleteAsync("users/admin/timeline/members/user2");
res.Should().HaveStatusCode(opMemberAdmin);
}
}
@@ -244,7 +244,7 @@ namespace Timeline.Tests.IntegratedTests
{
using (var client = await CreateClientAsUser())
{
- var res = await client.PutAsync("users/user/timeline/members/user2", null);
+ var res = await client.PutAsync("users/user1/timeline/members/user2", null);
res.Should().HaveStatusCode(200);
}
@@ -283,7 +283,7 @@ namespace Timeline.Tests.IntegratedTests
using (var client = await CreateClientAs(2))
{
{ // post as member
- var res = await client.PostAsJsonAsync("users/user1/timeline/postop/create",
+ var res = await client.PostAsJsonAsync("users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
res.Should().HaveStatusCode(200);
}
@@ -296,7 +296,7 @@ namespace Timeline.Tests.IntegratedTests
async Task<long> CreatePost(int userNumber)
{
using var client = await CreateClientAs(userNumber);
- var res = await client.PostAsJsonAsync($"users/user1/timeline/postop/create",
+ var res = await client.PostAsJsonAsync($"users/user1/timeline/posts",
new TimelinePostCreateRequest { Content = "aaa" });
return res.Should().HaveStatusCode(200)
.And.HaveJsonBody<TimelinePostInfo>()
@@ -383,7 +383,7 @@ namespace Timeline.Tests.IntegratedTests
.Which;
body.Should().NotBeNull();
body.Content.Should().Be(mockContent);
- body.Author.Should().Be(UserInfoList[1]);
+ body.Author.Should().BeEquivalentTo(UserInfoList[1]);
createRes = body;
}
{
@@ -402,9 +402,9 @@ namespace Timeline.Tests.IntegratedTests
.And.HaveJsonBody<TimelinePostInfo>()
.Which;
body.Should().NotBeNull();
- body.Content.Should().Be(mockContent);
- body.Author.Should().Be(UserInfoList[1]);
- body.Time.Should().Be(mockTime2);
+ body.Content.Should().Be(mockContent2);
+ body.Author.Should().BeEquivalentTo(UserInfoList[1]);
+ body.Time.Should().BeCloseTo(mockTime2, 1000);
createRes2 = body;
}
{
@@ -450,7 +450,7 @@ namespace Timeline.Tests.IntegratedTests
var id2 = await CreatePost(now);
{
- 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.Select(p => p.Id).Should().Equal(id1, id2, id0);
diff --git a/Timeline.Tests/IntegratedTests/UserAvatarTest.cs b/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
index 989207e2..67c2dd9a 100644
--- a/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
+++ b/Timeline.Tests/IntegratedTests/UserAvatarTest.cs
@@ -49,7 +49,7 @@ namespace Timeline.Tests.IntegratedTests
var env = Factory.Server.Host.Services.GetRequiredService<IWebHostEnvironment>();
var defaultAvatarData = await File.ReadAllBytesAsync(Path.Combine(env.ContentRootPath, "default-avatar.png"));
- async Task GetReturnDefault(string username = "user")
+ async Task GetReturnDefault(string username = "user1")
{
var res = await client.GetAsync($"users/{username}/avatar");
res.Should().HaveStatusCode(200);
diff --git a/Timeline.Tests/IntegratedTests/UserTest.cs b/Timeline.Tests/IntegratedTests/UserTest.cs
index 4c2ccf7a..1b9733ff 100644
--- a/Timeline.Tests/IntegratedTests/UserTest.cs
+++ b/Timeline.Tests/IntegratedTests/UserTest.cs
@@ -44,7 +44,7 @@ namespace Timeline.Tests.IntegratedTests
using var client = await CreateClientAsAdministrator();
var res = await client.GetAsync("/users");
res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<UserInfo[]>()
+ .And.HaveJsonBody<UserInfoForAdmin[]>()
.Which.Should().BeEquivalentTo(UserInfoForAdminList);
}
@@ -74,7 +74,7 @@ namespace Timeline.Tests.IntegratedTests
using var client = await CreateClientAsAdministrator();
var res = await client.GetAsync($"/users/user1");
res.Should().HaveStatusCode(200)
- .And.HaveJsonBody<UserInfo>()
+ .And.HaveJsonBody<UserInfoForAdmin>()
.Which.Should().BeEquivalentTo(UserInfoForAdminList[1]);
}
@@ -142,7 +142,7 @@ namespace Timeline.Tests.IntegratedTests
{
// Token should expire.
- var res = await userClient.GetAsync("/users");
+ var res = await userClient.GetAsync("/testing/auth/Authorize");
res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
}
@@ -198,7 +198,7 @@ namespace Timeline.Tests.IntegratedTests
[Fact]
public async Task Patch_NoAuth_Unauthorized()
{
- using var client = await CreateClientAsUser();
+ using var client = await CreateDefaultClient();
var res = await client.PatchAsJsonAsync("/users/user1", new UserPatchRequest { Nickname = "aaa" });
res.Should().HaveStatusCode(HttpStatusCode.Unauthorized);
}
diff --git a/Timeline.Tests/UsernameValidatorUnitTest.cs b/Timeline.Tests/UsernameValidatorUnitTest.cs
index 1a09d477..0f844452 100644
--- a/Timeline.Tests/UsernameValidatorUnitTest.cs
+++ b/Timeline.Tests/UsernameValidatorUnitTest.cs
@@ -22,12 +22,6 @@ namespace Timeline.Tests
}
[Fact]
- public void Null()
- {
- FailAndMessage(null).Should().ContainEquivalentOf("null");
- }
-
- [Fact]
public void NotString()
{
var (result, message) = _validator.Validate(123);
@@ -58,6 +52,7 @@ namespace Timeline.Tests
}
[Theory]
+ [InlineData(null)]
[InlineData("abc")]
[InlineData("-abc")]
[InlineData("_abc")]
@@ -68,7 +63,6 @@ namespace Timeline.Tests
[InlineData("a-b_c")]
public void Success(string value)
{
-
var (result, _) = _validator.Validate(value);
result.Should().BeTrue();
}