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