1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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);
- }
- }
- }
|