SeasonPathParserTests.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Emby.Naming.TV;
  2. using Xunit;
  3. namespace Jellyfin.Naming.Tests.TV;
  4. public class SeasonPathParserTests
  5. {
  6. [Theory]
  7. [InlineData("/Drive/Season 1", "/Drive", 1, true)]
  8. [InlineData("/Drive/Staffel 1", "/Drive", 1, true)]
  9. [InlineData("/Drive/Stagione 1", "/Drive", 1, true)]
  10. [InlineData("/Drive/sæson 1", "/Drive", 1, true)]
  11. [InlineData("/Drive/Temporada 1", "/Drive", 1, true)]
  12. [InlineData("/Drive/series 1", "/Drive", 1, true)]
  13. [InlineData("/Drive/Kausi 1", "/Drive", 1, true)]
  14. [InlineData("/Drive/Säsong 1", "/Drive", 1, true)]
  15. [InlineData("/Drive/Seizoen 1", "/Drive", 1, true)]
  16. [InlineData("/Drive/Seasong 1", "/Drive", 1, true)]
  17. [InlineData("/Drive/Sezon 1", "/Drive", 1, true)]
  18. [InlineData("/Drive/sezona 1", "/Drive", 1, true)]
  19. [InlineData("/Drive/sezóna 1", "/Drive", 1, true)]
  20. [InlineData("/Drive/Sezonul 1", "/Drive", 1, true)]
  21. [InlineData("/Drive/시즌 1", "/Drive", 1, true)]
  22. [InlineData("/Drive/シーズン 1", "/Drive", 1, true)]
  23. [InlineData("/Drive/сезон 1", "/Drive", 1, true)]
  24. [InlineData("/Drive/Сезон 1", "/Drive", 1, true)]
  25. [InlineData("/Drive/Season 10", "/Drive", 10, true)]
  26. [InlineData("/Drive/Season 100", "/Drive", 100, true)]
  27. [InlineData("/Drive/s1", "/Drive", 1, true)]
  28. [InlineData("/Drive/S1", "/Drive", 1, true)]
  29. [InlineData("/Drive/Season 2", "/Drive", 2, true)]
  30. [InlineData("/Drive/Season 02", "/Drive", 2, true)]
  31. [InlineData("/Drive/Seinfeld/S02", "/Seinfeld", 2, true)]
  32. [InlineData("/Drive/Seinfeld/2", "/Seinfeld", 2, true)]
  33. [InlineData("/Drive/Seinfeld Season 2", "/Drive", null, false)]
  34. [InlineData("/Drive/Season 2009", "/Drive", 2009, true)]
  35. [InlineData("/Drive/Season1", "/Drive", 1, true)]
  36. [InlineData("The Wonder Years/The.Wonder.Years.S04.PDTV.x264-JCH", "/The Wonder Years", 4, true)]
  37. [InlineData("/Drive/Season 7 (2016)", "/Drive", 7, true)]
  38. [InlineData("/Drive/Staffel 7 (2016)", "/Drive", 7, true)]
  39. [InlineData("/Drive/Stagione 7 (2016)", "/Drive", 7, true)]
  40. [InlineData("/Drive/Stargate SG-1/Season 1", "/Drive/Stargate SG-1", 1, true)]
  41. [InlineData("/Drive/Stargate SG-1/Stargate SG-1 Season 1", "/Drive/Stargate SG-1", 1, true)]
  42. [InlineData("/Drive/Season (8)", "/Drive", null, false)]
  43. [InlineData("/Drive/3.Staffel", "/Drive", 3, true)]
  44. [InlineData("/Drive/s06e05", "/Drive", null, false)]
  45. [InlineData("/Drive/The.Legend.of.Condor.Heroes.2017.V2.web-dl.1080p.h264.aac-hdctv", "/Drive", null, false)]
  46. [InlineData("/Drive/extras", "/Drive", 0, true)]
  47. [InlineData("/Drive/specials", "/Drive", 0, true)]
  48. [InlineData("/Drive/Episode 1 Season 2", "/Drive", null, false)]
  49. public void GetSeasonNumberFromPathTest(string path, string? parentPath, int? seasonNumber, bool isSeasonDirectory)
  50. {
  51. var result = SeasonPathParser.Parse(path, parentPath, true, true);
  52. Assert.Equal(result.SeasonNumber is not null, result.Success);
  53. Assert.Equal(seasonNumber, result.SeasonNumber);
  54. Assert.Equal(isSeasonDirectory, result.IsSeasonFolder);
  55. }
  56. }