Simplify Resolve_InvalidExtension Test and created tests for Alternative Versions parsing & Year Extraction for audiobooks

This commit is contained in:
Stepan 2020-11-01 17:41:47 +01:00
parent f39775dc3a
commit 50a2ef9d8a
2 changed files with 61 additions and 8 deletions

View File

@ -43,6 +43,64 @@ namespace Jellyfin.Naming.Tests.AudioBook
Assert.Equal("Batman", result[1].Name); Assert.Equal("Batman", result[1].Name);
} }
[Fact]
public void TestAlternativeVersions()
{
var files = new[]
{
"Harry Potter and the Deathly Hallows/Chapter 1.ogg",
"Harry Potter and the Deathly Hallows/Chapter 1.mp3",
"Deadpool.ogg",
"Deadpool.mp3",
"Batman/Chapter 1.mp3"
};
var resolver = GetResolver();
var result = resolver.Resolve(files.Select(i => new FileSystemMetadata
{
IsDirectory = false,
FullName = i
})).ToList();
Assert.Equal(3, result[0].Files.Count);
Assert.NotEmpty(result[0].AlternateVersions);
Assert.NotEmpty(result[1].AlternateVersions);
Assert.Empty(result[2].AlternateVersions);
}
[Fact]
public void TestYearExtraction()
{
var files = new[]
{
"Harry Potter and the Deathly Hallows (2007)/Chapter 1.ogg",
"Harry Potter and the Deathly Hallows (2007)/Chapter 2.mp3",
"Batman (2020).ogg",
"Batman(2021).mp3",
"Batman.mp3"
};
var resolver = GetResolver();
var result = resolver.Resolve(files.Select(i => new FileSystemMetadata
{
IsDirectory = false,
FullName = i
})).ToList();
Assert.Equal(3, result[0].Files.Count);
Assert.Equal(2007, result[0].Year);
Assert.Equal(2020, result[1].Year);
Assert.Equal(2021, result[2].Year);
Assert.Null(result[2].Year);
}
[Fact] [Fact]
public void TestWithMetadata() public void TestWithMetadata()
{ {

View File

@ -35,10 +35,6 @@ namespace Jellyfin.Naming.Tests.AudioBook
}; };
} }
public static IEnumerable<object[]> GetPathsWithInvalidExtensions()
{
yield return new object[] { @"/server/AudioBooks/Larry Potter/Larry Potter.mp9" };
}
[Theory] [Theory]
[MemberData(nameof(GetResolveFileTestData))] [MemberData(nameof(GetResolveFileTestData))]
@ -53,11 +49,10 @@ namespace Jellyfin.Naming.Tests.AudioBook
Assert.Equal(result!.PartNumber, expectedResult.PartNumber); Assert.Equal(result!.PartNumber, expectedResult.PartNumber);
} }
[Theory] [Fact]
[MemberData(nameof(GetPathsWithInvalidExtensions))] public void Resolve_InvalidExtension()
public void Resolve_InvalidExtension(string path)
{ {
var result = new AudioBookResolver(_namingOptions).Resolve(path); var result = new AudioBookResolver(_namingOptions).Resolve(@"/server/AudioBooks/Larry Potter/Larry Potter.mp9");
Assert.Null(result); Assert.Null(result);
} }