Added a bunch of basic json files for the different structures Kavita supports. Unit tests to come.
This commit is contained in:
parent
85b3187f3f
commit
16498d4b40
16 changed files with 134 additions and 0 deletions
54
API.Tests/Services/Scanner/FileSystemParserTests.cs
Normal file
54
API.Tests/Services/Scanner/FileSystemParserTests.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using API.Data.Repositories;
|
||||||
|
using API.Tests.Helpers;
|
||||||
|
using Hangfire;
|
||||||
|
using Xunit;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
|
namespace API.Tests.Services.Scanner;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Responsible for testing Change Detection, Exclude Patterns,
|
||||||
|
/// </summary>
|
||||||
|
public class FileSystemParserTests : AbstractDbTest
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly ITestOutputHelper _testOutputHelper;
|
||||||
|
private readonly ScannerHelper _scannerHelper;
|
||||||
|
private readonly string _testDirectory = Path.Join(Directory.GetCurrentDirectory(), "../../../Services/Test Data/ScannerService/ScanTests");
|
||||||
|
|
||||||
|
public FileSystemParserTests(ITestOutputHelper testOutputHelper)
|
||||||
|
{
|
||||||
|
_testOutputHelper = testOutputHelper;
|
||||||
|
|
||||||
|
// Set up Hangfire to use in-memory storage for testing
|
||||||
|
GlobalConfiguration.Configuration.UseInMemoryStorage();
|
||||||
|
_scannerHelper = new ScannerHelper(UnitOfWork, testOutputHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task ResetDb()
|
||||||
|
{
|
||||||
|
Context.Library.RemoveRange(Context.Library);
|
||||||
|
await Context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region Validate Change Detection
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ScanLibrary_ComicVine_PublisherFolder()
|
||||||
|
{
|
||||||
|
var testcase = "Publisher - ComicVine.json";
|
||||||
|
var library = await _scannerHelper.GenerateScannerData(testcase);
|
||||||
|
var scanner = _scannerHelper.CreateServices();
|
||||||
|
await scanner.ScanLibrary(library.Id);
|
||||||
|
var postLib = await UnitOfWork.LibraryRepository.GetLibraryForIdAsync(library.Id, LibraryIncludes.Series);
|
||||||
|
|
||||||
|
Assert.NotNull(postLib);
|
||||||
|
Assert.Equal(4, postLib.Series.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 01.cbz",
|
||||||
|
"Root 2/Series C/Series C 01.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series A/Series A1/Series A1 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 01.cbz",
|
||||||
|
"Root 2/Series C/Series C 01.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/book v1.pdf",
|
||||||
|
"Root 1/Books/book v2.pdf"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/Series A/ch 1/001.png",
|
||||||
|
"Root 1/Books/Series A/ch 1/002.png",
|
||||||
|
"Root 1/Books/Series A/ch 2/001.png"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/Series A/vol 1 ch 1/001.png",
|
||||||
|
"Root 1/Books/Series A/vol 1 ch 2/002.png",
|
||||||
|
"Root 1/Books/Series A/vol 2/001.png"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/Series A/vol 1/ch 1/001.png",
|
||||||
|
"Root 1/Books/Series A/vol 1/ch 2/002.png",
|
||||||
|
"Root 1/Books/Series A/vol 2/001.png"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/Series A [Digital]/001.png",
|
||||||
|
"Root 1/Books/Series A [Digital]/002.png"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Books/Series A/vol 1/001.png",
|
||||||
|
"Root 1/Books/Series A/vol 1/002.png",
|
||||||
|
"Root 1/Books/Series A/vol 2/001.png"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
"Root 1/Genre/Series A 01.cbz",
|
||||||
|
"Root 1/Genre/Series B 01.cbz",
|
||||||
|
"Root 1/Genre/Series C 01.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Publisher 1/Series A/Series A #1.cbz",
|
||||||
|
"Root 1/Publisher 1/Series B/Series B #1.cbz",
|
||||||
|
"Root 1/Publisher 2/Series C/Series C #1.cbz",
|
||||||
|
"Root 1/Publisher 2/Series D/Series D #1.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series A/Series A 02.cbz",
|
||||||
|
"Root 1/Series A/Specials/Series A - Title.cbz",
|
||||||
|
"Root 1/Series A/Specials/Title Two.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series A/Series A 02.cbz",
|
||||||
|
"Root 1/Series A/Series A - Title SP01.cbz",
|
||||||
|
"Root 1/Series A/Series A - Title SP02.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 02.cbz",
|
||||||
|
"Root 2/Series C/Series C 01.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 01.cbz",
|
||||||
|
"Root 1/Series B/Ignore/Series B 02.cbz",
|
||||||
|
"Root 2/Ignore/Series C/Series C 01.cbz"
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
[
|
||||||
|
"Root 1/Series A/Series A 01.cbz",
|
||||||
|
"Root 1/Series B/Series B 01.cbz",
|
||||||
|
"Root 1/Series B/Ignore/Series B 02.cbz",
|
||||||
|
"Root 2/Series C/Series C 01.cbz"
|
||||||
|
]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue