diff options
author | crupest <crupest@outlook.com> | 2021-02-11 23:22:50 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-02-11 23:22:50 +0800 |
commit | d30c011d70453029a7a5c27b00f7f33357c3a9c2 (patch) | |
tree | ad2d101745c9c526a64a79b0ded15fe8935f6f8d /BackEnd/Timeline.Tests | |
parent | b5376f71157f68f06aa04bde79389f9ab291d84a (diff) | |
download | timeline-d30c011d70453029a7a5c27b00f7f33357c3a9c2.tar.gz timeline-d30c011d70453029a7a5c27b00f7f33357c3a9c2.tar.bz2 timeline-d30c011d70453029a7a5c27b00f7f33357c3a9c2.zip |
test: Add create post invalid model test.
Diffstat (limited to 'BackEnd/Timeline.Tests')
-rw-r--r-- | BackEnd/Timeline.Tests/IntegratedTests/TimelinePostTest.cs | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/BackEnd/Timeline.Tests/IntegratedTests/TimelinePostTest.cs b/BackEnd/Timeline.Tests/IntegratedTests/TimelinePostTest.cs index bd79ae18..08f88dfc 100644 --- a/BackEnd/Timeline.Tests/IntegratedTests/TimelinePostTest.cs +++ b/BackEnd/Timeline.Tests/IntegratedTests/TimelinePostTest.cs @@ -7,6 +7,7 @@ using System.Text; using System.Threading.Tasks;
using Timeline.Models;
using Timeline.Models.Http;
+using Timeline.Tests.Helpers;
using Xunit;
using Xunit.Abstractions;
@@ -343,5 +344,146 @@ namespace Timeline.Tests.IntegratedTests post3.Time.Should().Be(date);
post3.Color.Should().Be("#aabbcc");
}
+
+ [Theory]
+ [MemberData(nameof(TimelineNameGeneratorTestData))]
+ public async Task CreatePost_InvalidModel(TimelineNameGenerator generator)
+ {
+ using var client = await CreateClientAsUser();
+
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest { DataList = null! }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest { DataList = new List<HttpTimelinePostCreateRequestData>() }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = Enumerable.Repeat(new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "text/plain",
+ Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("a"))
+ }, 200).ToList()
+ }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = null!,
+ Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("a"))
+ }
+ }
+ }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "text/plain",
+ Data = null!
+ }
+ }
+ }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "text/xxxxxxx",
+ Data = Convert.ToBase64String(Encoding.UTF8.GetBytes("a"))
+ }
+ }
+ }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "text/plain",
+ Data = "aaa"
+ }
+ }
+ }
+ );
+ }
+
+ [Theory]
+ [MemberData(nameof(TimelineNameGeneratorTestData))]
+ public async Task CreatePost_InvalidModel_NonUtf8(TimelineNameGenerator generator)
+ {
+ using var client = await CreateClientAsUser();
+
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "text/plain",
+ Data = Convert.ToBase64String(new byte[] {0xE4, 0x1, 0xA0})
+ }
+ }
+ }
+ );
+ }
+
+ [Theory]
+ [MemberData(nameof(TimelineNameGeneratorTestData))]
+ public async Task CreatePost_InvalidModel_Image(TimelineNameGenerator generator)
+ {
+ using var client = await CreateClientAsUser();
+
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "image/jpeg",
+ Data = Convert.ToBase64String(ImageHelper.CreatePngWithSize(100, 100))
+ }
+ }
+ }
+ );
+ await client.TestPostAssertInvalidModelAsync(
+ $"timelines/{generator(1)}/posts",
+ new HttpTimelinePostCreateRequest
+ {
+ DataList = new List<HttpTimelinePostCreateRequestData>()
+ {
+ new HttpTimelinePostCreateRequestData
+ {
+ ContentType = "image/jpeg",
+ Data = Convert.ToBase64String(new byte[] { 100, 200 })
+ }
+ }
+ }
+ );
+ }
}
}
|