Collection Rework (#2830)

This commit is contained in:
Joe Milazzo 2024-04-06 12:03:49 -05:00 committed by GitHub
parent 0dacc061f1
commit deaaccb96a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
93 changed files with 5413 additions and 1120 deletions

View file

@ -167,53 +167,53 @@ public class CleanupServiceTests : AbstractDbTest
}
#endregion
#region DeleteTagCoverImages
[Fact]
public async Task DeleteTagCoverImages_ShouldNotDeleteLinkedFiles()
{
var filesystem = CreateFileSystem();
filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(1)}.jpg", new MockFileData(""));
filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(2)}.jpg", new MockFileData(""));
filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(1000)}.jpg", new MockFileData(""));
// Delete all Series to reset state
await ResetDb();
// Add 2 series with cover images
_context.Series.Add(new SeriesBuilder("Test 1")
.WithMetadata(new SeriesMetadataBuilder()
.WithCollectionTag(new CollectionTagBuilder("Something")
.WithCoverImage($"{ImageService.GetCollectionTagFormat(1)}.jpg")
.Build())
.Build())
.WithCoverImage($"{ImageService.GetSeriesFormat(1)}.jpg")
.WithLibraryId(1)
.Build());
_context.Series.Add(new SeriesBuilder("Test 2")
.WithMetadata(new SeriesMetadataBuilder()
.WithCollectionTag(new CollectionTagBuilder("Something")
.WithCoverImage($"{ImageService.GetCollectionTagFormat(2)}.jpg")
.Build())
.Build())
.WithCoverImage($"{ImageService.GetSeriesFormat(3)}.jpg")
.WithLibraryId(1)
.Build());
await _context.SaveChangesAsync();
var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
var cleanupService = new CleanupService(_logger, _unitOfWork, _messageHub,
ds);
await cleanupService.DeleteTagCoverImages();
Assert.Equal(2, ds.GetFiles(CoverImageDirectory).Count());
}
#endregion
// #region DeleteTagCoverImages
//
// [Fact]
// public async Task DeleteTagCoverImages_ShouldNotDeleteLinkedFiles()
// {
// var filesystem = CreateFileSystem();
// filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(1)}.jpg", new MockFileData(""));
// filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(2)}.jpg", new MockFileData(""));
// filesystem.AddFile($"{CoverImageDirectory}{ImageService.GetCollectionTagFormat(1000)}.jpg", new MockFileData(""));
//
// // Delete all Series to reset state
// await ResetDb();
//
// // Add 2 series with cover images
//
// _context.Series.Add(new SeriesBuilder("Test 1")
// .WithMetadata(new SeriesMetadataBuilder()
// .WithCollectionTag(new AppUserCollectionBuilder("Something")
// .WithCoverImage($"{ImageService.GetCollectionTagFormat(1)}.jpg")
// .Build())
// .Build())
// .WithCoverImage($"{ImageService.GetSeriesFormat(1)}.jpg")
// .WithLibraryId(1)
// .Build());
//
// _context.Series.Add(new SeriesBuilder("Test 2")
// .WithMetadata(new SeriesMetadataBuilder()
// .WithCollectionTag(new AppUserCollectionBuilder("Something")
// .WithCoverImage($"{ImageService.GetCollectionTagFormat(2)}.jpg")
// .Build())
// .Build())
// .WithCoverImage($"{ImageService.GetSeriesFormat(3)}.jpg")
// .WithLibraryId(1)
// .Build());
//
//
// await _context.SaveChangesAsync();
// var ds = new DirectoryService(Substitute.For<ILogger<DirectoryService>>(), filesystem);
// var cleanupService = new CleanupService(_logger, _unitOfWork, _messageHub,
// ds);
//
// await cleanupService.DeleteTagCoverImages();
//
// Assert.Equal(2, ds.GetFiles(CoverImageDirectory).Count());
// }
//
// #endregion
#region DeleteReadingListCoverImages
[Fact]
@ -435,24 +435,26 @@ public class CleanupServiceTests : AbstractDbTest
[Fact]
public async Task CleanupDbEntries_RemoveTagsWithoutSeries()
{
var c = new CollectionTag()
var s = new SeriesBuilder("Test")
.WithFormat(MangaFormat.Epub)
.WithMetadata(new SeriesMetadataBuilder().Build())
.Build();
s.Library = new LibraryBuilder("Test LIb").Build();
_context.Series.Add(s);
var c = new AppUserCollection()
{
Title = "Test Tag",
NormalizedTitle = "Test Tag".ToNormalized(),
AgeRating = AgeRating.Unknown,
Items = new List<Series>() {s}
};
var s = new SeriesBuilder("Test")
.WithFormat(MangaFormat.Epub)
.WithMetadata(new SeriesMetadataBuilder().WithCollectionTag(c).Build())
.Build();
s.Library = new LibraryBuilder("Test LIb").Build();
_context.Series.Add(s);
_context.AppUser.Add(new AppUser()
{
UserName = "majora2007"
UserName = "majora2007",
Collections = new List<AppUserCollection>() {c}
});
await _context.SaveChangesAsync();
var cleanupService = new CleanupService(Substitute.For<ILogger<CleanupService>>(), _unitOfWork,
@ -465,7 +467,7 @@ public class CleanupServiceTests : AbstractDbTest
await cleanupService.CleanupDbEntries();
Assert.Empty(await _unitOfWork.CollectionTagRepository.GetAllTagsAsync());
Assert.Empty(await _unitOfWork.CollectionTagRepository.GetAllCollectionsAsync());
}
#endregion