2
0

AudioBookResolverTests.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Collections.Generic;
  2. using Emby.Naming.AudioBook;
  3. using Emby.Naming.Common;
  4. using Xunit;
  5. namespace Jellyfin.Naming.Tests.AudioBook
  6. {
  7. public class AudioBookResolverTests
  8. {
  9. private readonly NamingOptions _namingOptions = new NamingOptions();
  10. public static IEnumerable<object[]> GetResolveFileTestData()
  11. {
  12. yield return new object[]
  13. {
  14. new AudioBookFileInfo()
  15. {
  16. Path = @"/server/AudioBooks/Larry Potter/Larry Potter.mp3",
  17. Container = "mp3",
  18. }
  19. };
  20. yield return new object[]
  21. {
  22. new AudioBookFileInfo()
  23. {
  24. Path = @"/server/AudioBooks/Berry Potter/Chapter 1 .ogg",
  25. Container = "ogg",
  26. ChapterNumber = 1
  27. }
  28. };
  29. yield return new object[]
  30. {
  31. new AudioBookFileInfo()
  32. {
  33. Path = @"/server/AudioBooks/Nerry Potter/Part 3 - Chapter 2.mp3",
  34. Container = "mp3",
  35. ChapterNumber = 2,
  36. PartNumber = 3
  37. }
  38. };
  39. }
  40. [Theory]
  41. [MemberData(nameof(GetResolveFileTestData))]
  42. public void ResolveFile_ValidFileName_Success(AudioBookFileInfo expectedResult)
  43. {
  44. var result = new AudioBookResolver(_namingOptions).Resolve(expectedResult.Path);
  45. Assert.NotNull(result);
  46. Assert.Equal(result.Path, expectedResult.Path);
  47. Assert.Equal(result.Container, expectedResult.Container);
  48. Assert.Equal(result.ChapterNumber, expectedResult.ChapterNumber);
  49. Assert.Equal(result.PartNumber, expectedResult.PartNumber);
  50. Assert.Equal(result.IsDirectory, expectedResult.IsDirectory);
  51. }
  52. }
  53. }