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(); 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 }; }