Files

54 lines
1.5 KiB
C#

using dy.net.model.dto;
using dy.net.model.entity;
using dy.net.repository;
using dy.net.Tests.TestInfrastructure;
using SqlSugar;
namespace dy.net.Tests;
public class VideoQueryTests
{
[Fact]
public async Task AuthorIdFilter_DoesNotMixAuthorsWithTheSameDisplayName()
{
using var temporary = new TemporaryDirectory();
using var db = new SqlSugarClient(new ConnectionConfig
{
ConnectionString = $"DataSource={Path.Combine(temporary.Path, "videos.sqlite")}",
DbType = DbType.Sqlite,
InitKeyType = InitKeyType.Attribute,
IsAutoCloseConnection = true
});
db.CodeFirst.InitTables<DouyinVideo, DouyinCookie>();
await db.Insertable(new[]
{
Video("one", "author-one"),
Video("two", "author-two")
}).ExecuteCommandAsync();
var (items, total) = await new DouyinVideoRepository(db).GetPagedAsync(new DouyinVideoPageRequestDto
{
PageIndex = 1,
PageSize = 20,
AuthorId = "author-two",
ViedoType = "*"
});
Assert.Equal(1, total);
Assert.Equal("two", Assert.Single(items).Id);
}
private static DouyinVideo Video(string id, string authorId) => new()
{
Id = id,
AwemeId = id + "-aweme",
Author = "同名博主",
AuthorId = authorId,
VideoTitle = id,
VideoSavePath = $"/{id}.mp4",
ViedoType = VideoTypeEnum.dy_follows,
CreateTime = DateTime.Now,
SyncTime = DateTime.Now
};
}