SeasonNumberTests.cs 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Emby.Naming.Common;
  2. using Emby.Naming.TV;
  3. using Xunit;
  4. namespace Jellyfin.Naming.Tests.TV
  5. {
  6. public class SeasonNumberTests
  7. {
  8. private readonly NamingOptions _namingOptions = new NamingOptions();
  9. [Theory]
  10. [InlineData("The Daily Show/The Daily Show 25x22 - [WEBDL-720p][AAC 2.0][x264] Noah Baumbach-TBS.mkv", 25)]
  11. [InlineData("/Show/Season 02/S02E03 blah.avi", 2)]
  12. [InlineData("Season 1/seriesname S01x02 blah.avi", 1)]
  13. [InlineData("Season 1/S01x02 blah.avi", 1)]
  14. [InlineData("Season 1/seriesname S01xE02 blah.avi", 1)]
  15. [InlineData("Season 1/01x02 blah.avi", 1)]
  16. [InlineData("Season 1/S01E02 blah.avi", 1)]
  17. [InlineData("Season 1/S01xE02 blah.avi", 1)]
  18. [InlineData("Season 1/seriesname 01x02 blah.avi", 1)]
  19. [InlineData("Season 1/seriesname S01E02 blah.avi", 1)]
  20. [InlineData("Season 2/Elementary - 02x03 - 02x04 - 02x15 - Ep Name.mp4", 2)]
  21. [InlineData("Season 2/02x03 - 02x04 - 02x15 - Ep Name.mp4", 2)]
  22. [InlineData("Season 2/02x03-04-15 - Ep Name.mp4", 2)]
  23. [InlineData("Season 2/Elementary - 02x03-04-15 - Ep Name.mp4", 2)]
  24. [InlineData("Season 02/02x03-E15 - Ep Name.mp4", 2)]
  25. [InlineData("Season 02/Elementary - 02x03-E15 - Ep Name.mp4", 2)]
  26. [InlineData("Season 02/02x03 - x04 - x15 - Ep Name.mp4", 2)]
  27. [InlineData("Season 02/Elementary - 02x03 - x04 - x15 - Ep Name.mp4", 2)]
  28. [InlineData("Season 02/02x03x04x15 - Ep Name.mp4", 2)]
  29. [InlineData("Season 02/Elementary - 02x03x04x15 - Ep Name.mp4", 2)]
  30. [InlineData("Season 1/Elementary - S01E23-E24-E26 - The Woman.mp4", 1)]
  31. [InlineData("Season 1/S01E23-E24-E26 - The Woman.mp4", 1)]
  32. [InlineData("Season 25/The Simpsons.S25E09.Steal this episode.mp4", 25)]
  33. [InlineData("The Simpsons/The Simpsons.S25E09.Steal this episode.mp4", 25)]
  34. [InlineData("2016/Season s2016e1.mp4", 2016)]
  35. [InlineData("2016/Season 2016x1.mp4", 2016)]
  36. [InlineData("Season 2009/2009x02 blah.avi", 2009)]
  37. [InlineData("Season 2009/S2009x02 blah.avi", 2009)]
  38. [InlineData("Season 2009/S2009E02 blah.avi", 2009)]
  39. [InlineData("Season 2009/S2009xE02 blah.avi", 2009)]
  40. [InlineData("Season 2009/seriesname 2009x02 blah.avi", 2009)]
  41. [InlineData("Season 2009/seriesname S2009x02 blah.avi", 2009)]
  42. [InlineData("Season 2009/seriesname S2009E02 blah.avi", 2009)]
  43. [InlineData("Season 2009/Elementary - 2009x03 - 2009x04 - 2009x15 - Ep Name.mp4", 2009)]
  44. [InlineData("Season 2009/2009x03 - 2009x04 - 2009x15 - Ep Name.mp4", 2009)]
  45. [InlineData("Season 2009/2009x03-04-15 - Ep Name.mp4", 2009)]
  46. [InlineData("Season 2009/Elementary - 2009x03 - x04 - x15 - Ep Name.mp4", 2009)]
  47. [InlineData("Season 2009/2009x03x04x15 - Ep Name.mp4", 2009)]
  48. [InlineData("Season 2009/Elementary - 2009x03x04x15 - Ep Name.mp4", 2009)]
  49. [InlineData("Season 2009/Elementary - S2009E23-E24-E26 - The Woman.mp4", 2009)]
  50. [InlineData("Season 2009/S2009E23-E24-E26 - The Woman.mp4", 2009)]
  51. [InlineData("Series/1-12 - The Woman.mp4", 1)]
  52. [InlineData(@"Running Man/Running Man S2017E368.mkv", 2017)]
  53. [InlineData(@"Case Closed (1996-2007)/Case Closed - 317.mkv", 3)]
  54. // TODO: [InlineData(@"Seinfeld/Seinfeld 0807 The Checks.avi", 8)]
  55. public void GetSeasonNumberFromEpisodeFileTest(string path, int? expected)
  56. {
  57. var result = new EpisodeResolver(_namingOptions)
  58. .Resolve(path, false);
  59. Assert.Equal(expected, result?.SeasonNumber);
  60. }
  61. }
  62. }