|
|
|
@ -120,7 +120,7 @@ namespace NzbDrone.Core.Test.ParserTests
|
|
|
|
|
ExceptionVerification.IgnoreWarns();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("[DmonHiro] The Severing Crime Edge - Cut 02 - Portrait Of Heresy [BD, 720p] [BE36E9E0]")]
|
|
|
|
|
[TestCase("THIS SHOULD NEVER PARSE")]
|
|
|
|
|
public void unparsable_title_should_log_warn_and_return_null(string title)
|
|
|
|
|
{
|
|
|
|
|
Parser.Parser.ParseTitle(title).Should().BeNull();
|
|
|
|
@ -147,7 +147,9 @@ namespace NzbDrone.Core.Test.ParserTests
|
|
|
|
|
[TestCase("Hell.on.Wheels.S02E09-E10.720p.HDTV.x264-EVOLVE", "Hell on Wheels", 2, new[] { 9, 10 })]
|
|
|
|
|
[TestCase("Grey's Anatomy - 8x01_02 - Free Falling", "Grey's Anatomy", 8, new [] { 1,2 })]
|
|
|
|
|
[TestCase("8x01_02 - Free Falling", "", 8, new[] { 1, 2 })]
|
|
|
|
|
[TestCase("Kaamelott.S01E91-E100", "Kaamelott", 1,new[] { 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 })]
|
|
|
|
|
[TestCase("Kaamelott.S01E91-E100", "Kaamelott", 1, new[] { 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 })]
|
|
|
|
|
[TestCase("Neighbours.S29E161-E165.PDTV.x264-FQM", "Neighbours", 29, new[] { 161, 162, 163, 164, 165 })]
|
|
|
|
|
[TestCase("Shortland.Street.S22E5363-E5366.HDTV.x264-FiHTV", "Shortland Street", 22, new[] { 5363, 5364, 5365, 5366 })]
|
|
|
|
|
public void TitleParse_multi(string postTitle, string title, int season, int[] episodes)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseTitle(postTitle);
|
|
|
|
@ -174,7 +176,39 @@ namespace NzbDrone.Core.Test.ParserTests
|
|
|
|
|
result.Should().NotBeNull();
|
|
|
|
|
result.SeriesTitle.Should().Be(title.CleanSeriesTitle());
|
|
|
|
|
result.AirDate.Should().Be(airDate.ToString(Episode.AIR_DATE_FORMAT));
|
|
|
|
|
result.EpisodeNumbers.Should().BeNull();
|
|
|
|
|
result.EpisodeNumbers.Should().BeEmpty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[TestCase("[SubDESU]_High_School_DxD_07_(1280x720_x264-AAC)_[6B7FD717]", "High School DxD", 7, 0, 0)]
|
|
|
|
|
[TestCase("[Chihiro]_Working!!_-_06_[848x480_H.264_AAC][859EEAFA]", "Working!!", 6, 0, 0)]
|
|
|
|
|
[TestCase("[Commie]_Senki_Zesshou_Symphogear_-_11_[65F220B4]", "Senki_Zesshou_Symphogear", 11, 0, 0)]
|
|
|
|
|
[TestCase("[Underwater]_Rinne_no_Lagrange_-_12_(720p)_[5C7BC4F9]", "Rinne_no_Lagrange", 12, 0, 0)]
|
|
|
|
|
[TestCase("[Commie]_Rinne_no_Lagrange_-_15_[E76552EA]", "Rinne_no_Lagrange", 15, 0, 0)]
|
|
|
|
|
[TestCase("[HorribleSubs]_Hunter_X_Hunter_-_33_[720p]", "Hunter_X_Hunter", 33, 0, 0)]
|
|
|
|
|
[TestCase("[HorribleSubs]_Fairy_Tail_-_145_[720p]", "Fairy_Tail", 145, 0, 0)]
|
|
|
|
|
[TestCase("[HorribleSubs] Tonari no Kaibutsu-kun - 13 [1080p].mkv", "Tonari no Kaibutsu-kun", 13, 0, 0)]
|
|
|
|
|
[TestCase("[Doremi].Yes.Pretty.Cure.5.Go.Go!.31.[1280x720].[C65D4B1F].mkv", "Yes.Pretty.Cure.5.Go.Go!", 31, 0, 0)]
|
|
|
|
|
[TestCase("[K-F] One Piece 214", "One Piece", 214, 0, 0)]
|
|
|
|
|
[TestCase("[K-F] One Piece S10E14 214", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("[K-F] One Piece 10x14 214", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("[K-F] One Piece 214 10x14", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("One Piece S10E14 214", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("One Piece 10x14 214", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("One Piece 214 10x14", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("214 One Piece 10x14", "One Piece", 214, 10, 14)]
|
|
|
|
|
[TestCase("Bleach - 031 - The Resolution to Kill [Lunar].avi", "Bleach", 31, 0, 0)]
|
|
|
|
|
[TestCase("Bleach - 031 - The Resolution to Kill [Lunar]", "Bleach", 31, 0, 0)]
|
|
|
|
|
[TestCase("[ACX]Hack Sign 01 Role Play [Kosaka] [9C57891E].mkv", "Hack Sign", 1, 0, 0)]
|
|
|
|
|
[TestCase("[SFW-sage] Bakuman S3 - 12 [720p][D07C91FC]", "Bakuman S3", 12, 0, 0)]
|
|
|
|
|
[TestCase("ducktales_e66_time_is_money_part_one_marking_time", "DuckTales", 66, 0, 0)]
|
|
|
|
|
public void parse_absolute_numbers(string postTitle, string title, int absoluteEpisodeNumber, int seasonNumber, int episodeNumber)
|
|
|
|
|
{
|
|
|
|
|
var result = Parser.Parser.ParseTitle(postTitle);
|
|
|
|
|
result.Should().NotBeNull();
|
|
|
|
|
result.AbsoluteEpisodeNumbers.First().Should().Be(absoluteEpisodeNumber);
|
|
|
|
|
result.SeasonNumber.Should().Be(seasonNumber);
|
|
|
|
|
result.EpisodeNumbers.FirstOrDefault().Should().Be(episodeNumber);
|
|
|
|
|
result.SeriesTitle.Should().Be(title.CleanSeriesTitle());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|