diff options
Diffstat (limited to 'tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs')
| -rw-r--r-- | tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs new file mode 100644 index 000000000..c72a3315e --- /dev/null +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs @@ -0,0 +1,65 @@ +using Emby.Naming.AudioBook; +using Emby.Naming.Common; +using Xunit; + +namespace Jellyfin.Naming.Tests.AudioBook +{ + public class AudioBookResolverTests + { + private readonly NamingOptions _namingOptions = new NamingOptions(); + + public static TheoryData<AudioBookFileInfo> Resolve_ValidFileNameTestData() + { + var data = new TheoryData<AudioBookFileInfo>(); + + data.Add( + new AudioBookFileInfo( + @"/server/AudioBooks/Larry Potter/Larry Potter.mp3", + "mp3")); + + data.Add( + new AudioBookFileInfo( + @"/server/AudioBooks/Berry Potter/Chapter 1 .ogg", + "ogg", + chapterNumber: 1)); + + data.Add( + new AudioBookFileInfo( + @"/server/AudioBooks/Nerry Potter/Part 3 - Chapter 2.mp3", + "mp3", + chapterNumber: 2, + partNumber: 3)); + + return data; + } + + [Theory] + [MemberData(nameof(Resolve_ValidFileNameTestData))] + public void Resolve_ValidFileName_Success(AudioBookFileInfo expectedResult) + { + var result = new AudioBookResolver(_namingOptions).Resolve(expectedResult.Path); + + Assert.NotNull(result); + Assert.Equal(result!.Path, expectedResult.Path); + Assert.Equal(result!.Container, expectedResult.Container); + Assert.Equal(result!.ChapterNumber, expectedResult.ChapterNumber); + Assert.Equal(result!.PartNumber, expectedResult.PartNumber); + } + + [Fact] + public void Resolve_InvalidExtension() + { + var result = new AudioBookResolver(_namingOptions).Resolve(@"/server/AudioBooks/Larry Potter/Larry Potter.mp9"); + + Assert.Null(result); + } + + [Fact] + public void Resolve_EmptyFileName() + { + var result = new AudioBookResolver(_namingOptions).Resolve(string.Empty); + + Assert.Null(result); + } + } +} |
