using Emby.Naming.Common; using Emby.Naming.TV; using Xunit; namespace Jellyfin.Naming.Tests.TV { public class EpisodeNumberWithoutSeasonTests { [Fact] public void TestEpisodeNumberWithoutSeason1() { Assert.Equal(8, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons.S25E08.Steal this episode.mp4")); } [Fact] public void TestEpisodeNumberWithoutSeason2() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons - 02 - Ep Name.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason3() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/02.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason4() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/02 - Ep Name.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason5() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/02-Ep Name.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason6() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/02.EpName.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason7() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons - 02.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason8() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons - 02 Ep Name.avi")); } // FIXME // [Fact] public void TestEpisodeNumberWithoutSeason9() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons 5 - 02 - Ep Name.avi")); } // FIXME // [Fact] public void TestEpisodeNumberWithoutSeason10() { Assert.Equal(2, GetEpisodeNumberFromFile(@"The Simpsons/The Simpsons 5 - 02 Ep Name.avi")); } // FIXME // [Fact] public void TestEpisodeNumberWithoutSeason11() { Assert.Equal(7, GetEpisodeNumberFromFile(@"Seinfeld/Seinfeld 0807 The Checks.avi")); Assert.Equal(8, GetSeasonNumberFromFile(@"Seinfeld/Seinfeld 0807 The Checks.avi")); } [Fact] public void TestEpisodeNumberWithoutSeason12() { Assert.Equal(7, GetEpisodeNumberFromFile(@"GJ Club (2013)/GJ Club - 07.mkv")); } // FIXME // [Fact] public void TestEpisodeNumberWithoutSeason13() { // This is not supported anymore after removing the episode number 365+ hack from EpisodePathParser Assert.Equal(13, GetEpisodeNumberFromFile(@"Case Closed (1996-2007)/Case Closed - 13.mkv")); } [Fact] public void TestEpisodeNumberWithoutSeason14() { Assert.Equal(3, GetSeasonNumberFromFile(@"Case Closed (1996-2007)/Case Closed - 317.mkv")); Assert.Equal(17, GetEpisodeNumberFromFile(@"Case Closed (1996-2007)/Case Closed - 317.mkv")); } [Fact] public void TestEpisodeNumberWithoutSeason15() { Assert.Equal(2017, GetSeasonNumberFromFile(@"Running Man/Running Man S2017E368.mkv")); } private int? GetEpisodeNumberFromFile(string path) { var options = new NamingOptions(); var result = new EpisodeResolver(options) .Resolve(path, false); return result.EpisodeNumber; } private int? GetSeasonNumberFromFile(string path) { var options = new NamingOptions(); var result = new EpisodeResolver(options) .Resolve(path, false); return result.SeasonNumber; } } }