From 50ac95dec58da3d3c7fa5c37bd8dd5db221adeb2 Mon Sep 17 00:00:00 2001 From: Leonardo Galli Date: Sat, 11 Feb 2017 17:40:01 +0100 Subject: [PATCH] Update parser tests. --- .../AbsoluteEpisodeNumberParserFixture.cs | 1 + .../ParserTests/DailyEpisodeParserFixture.cs | 1 + .../MiniSeriesEpisodeParserFixture.cs | 1 + .../ParserTests/MultiEpisodeParserFixture.cs | 1 + .../ParsingServiceTests/GetEpisodesFixture.cs | 1 + .../ParsingServiceTests/MapFixture.cs | 181 +++++++----------- .../ParserTests/PathParserFixture.cs | 1 + .../ParserTests/SeasonParserFixture.cs | 1 + .../ParserTests/SeriesTitleInfoFixture.cs | 1 + .../ParserTests/SingleEpisodeParserFixture.cs | 1 + 10 files changed, 76 insertions(+), 114 deletions(-) diff --git a/src/NzbDrone.Core.Test/ParserTests/AbsoluteEpisodeNumberParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/AbsoluteEpisodeNumberParserFixture.cs index 9cdbf08e4..1365d0e66 100644 --- a/src/NzbDrone.Core.Test/ParserTests/AbsoluteEpisodeNumberParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/AbsoluteEpisodeNumberParserFixture.cs @@ -7,6 +7,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class AbsoluteEpisodeNumberParserFixture : CoreTest { [TestCase("[SubDESU]_High_School_DxD_07_(1280x720_x264-AAC)_[6B7FD717]", "High School DxD", 7, 0, 0)] diff --git a/src/NzbDrone.Core.Test/ParserTests/DailyEpisodeParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/DailyEpisodeParserFixture.cs index 7b5cbaaf6..a6c53c783 100644 --- a/src/NzbDrone.Core.Test/ParserTests/DailyEpisodeParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/DailyEpisodeParserFixture.cs @@ -9,6 +9,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class DailyEpisodeParserFixture : CoreTest { [TestCase("Conan 2011 04 18 Emma Roberts HDTV XviD BFF", "Conan", 2011, 04, 18)] diff --git a/src/NzbDrone.Core.Test/ParserTests/MiniSeriesEpisodeParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/MiniSeriesEpisodeParserFixture.cs index 982eb61ae..b61ea4803 100644 --- a/src/NzbDrone.Core.Test/ParserTests/MiniSeriesEpisodeParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/MiniSeriesEpisodeParserFixture.cs @@ -7,6 +7,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class MiniSeriesEpisodeParserFixture : CoreTest { [TestCase("The.Kennedys.Part.2.DSR.XviD-SYS", "The Kennedys", 2)] diff --git a/src/NzbDrone.Core.Test/ParserTests/MultiEpisodeParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/MultiEpisodeParserFixture.cs index 8df42b6e5..1ea101d57 100644 --- a/src/NzbDrone.Core.Test/ParserTests/MultiEpisodeParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/MultiEpisodeParserFixture.cs @@ -6,6 +6,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class MultiEpisodeParserFixture : CoreTest { [TestCase("WEEDS.S03E01-06.DUAL.BDRip.XviD.AC3.-HELLYWOOD", "WEEDS", 3, new[] { 1, 2, 3, 4, 5, 6 })] diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs index 7221038e7..3a5dc99f9 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/GetEpisodesFixture.cs @@ -14,6 +14,7 @@ using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests { [TestFixture] + [Ignore("Series")] public class GetEpisodesFixture : TestBase { private Series _series; diff --git a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs index 2357472ce..338413b0e 100644 --- a/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/ParsingServiceTests/MapFixture.cs @@ -18,6 +18,12 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests public class MapFixture : TestBase { private Series _series; + private Movie _movie; + private ParsedMovieInfo _parsedMovieInfo; + private ParsedMovieInfo _wrongYearInfo; + private ParsedMovieInfo _romanTitleInfo; + private ParsedMovieInfo _alternativeTitleInfo; + private MovieSearchCriteria _movieSearchCriteria; private List _episodes; private ParsedEpisodeInfo _parsedEpisodeInfo; private SingleEpisodeSearchCriteria _singleEpisodeSearchCriteria; @@ -30,6 +36,13 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests .With(s => s.CleanTitle = "rock") .Build(); + _movie = Builder.CreateNew() + .With(m => m.Title = "Mission Impossible 3") + .With(m => m.CleanTitle = "missionimpossible3") + .With(m => m.Year = 2006) + .With(m => m.AlternativeTitles = new List { "Mission Impossible 3: Same same" }) + .Build(); + _episodes = Builder.CreateListOfSize(1) .All() .With(e => e.AirDate = DateTime.Today.ToString(Episode.AIR_DATE_FORMAT)) @@ -43,6 +56,31 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests EpisodeNumbers = new[] { 1 } }; + _parsedMovieInfo = new ParsedMovieInfo + { + MovieTitle = _movie.Title, + Year = _movie.Year, + + }; + + _wrongYearInfo = new ParsedMovieInfo + { + MovieTitle = _movie.Title, + Year = 1900, + }; + + _alternativeTitleInfo = new ParsedMovieInfo + { + MovieTitle = _movie.AlternativeTitles.First(), + Year = _movie.Year, + }; + + _romanTitleInfo = new ParsedMovieInfo + { + MovieTitle = "Mission Impossible III", + Year = _movie.Year, + }; + _singleEpisodeSearchCriteria = new SingleEpisodeSearchCriteria { Series = _series, @@ -50,27 +88,18 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests SeasonNumber = _episodes.First().SeasonNumber, Episodes = _episodes }; - } - - private void GivenMatchBySeriesTitle() - { - Mocker.GetMock() - .Setup(s => s.FindByTitle(It.IsAny())) - .Returns(_series); - } - private void GivenMatchByTvdbId() - { - Mocker.GetMock() - .Setup(s => s.FindByTvdbId(It.IsAny())) - .Returns(_series); + _movieSearchCriteria = new MovieSearchCriteria + { + Movie = _movie + }; } - private void GivenMatchByTvRageId() + private void GivenMatchByMovieTitle() { - Mocker.GetMock() - .Setup(s => s.FindByTvRageId(It.IsAny())) - .Returns(_series); + Mocker.GetMock() + .Setup(s => s.FindByTitle(It.IsAny())) + .Returns(_movie); } private void GivenParseResultSeriesDoesntMatchSearchCriteria() @@ -79,121 +108,45 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests } [Test] - public void should_lookup_series_by_name() + public void should_lookup_Movie_by_name() { - GivenMatchBySeriesTitle(); + GivenMatchByMovieTitle(); - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); + Subject.Map(_parsedMovieInfo, "", null); - Mocker.GetMock() + Mocker.GetMock() .Verify(v => v.FindByTitle(It.IsAny()), Times.Once()); } [Test] - public void should_use_tvdbid_when_series_title_lookup_fails() - { - GivenMatchByTvdbId(); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvdbId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvrageid_when_series_title_lookup_fails() - { - GivenMatchByTvRageId(); - - Subject.Map(_parsedEpisodeInfo, 0, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_not_use_tvrageid_when_scene_naming_exception_exists() - { - GivenMatchByTvRageId(); - - Mocker.GetMock() - .Setup(v => v.FindTvdbId(It.IsAny())) - .Returns(10); - - var result = Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Never()); - - result.Series.Should().BeNull(); - } - - [Test] - public void should_use_search_criteria_series_title() + public void should_use_search_criteria_movie_title() { - GivenMatchBySeriesTitle(); + GivenMatchByMovieTitle(); - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); + Subject.Map(_parsedMovieInfo, "", _movieSearchCriteria); Mocker.GetMock() .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); } [Test] - public void should_FindByTitle_when_search_criteria_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Once()); - } - - [Test] - public void should_FindByTvdbId_when_search_criteria_and_FindByTitle_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTvdbId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_FindByTvRageId_when_search_criteria_and_FindByTitle_matching_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); - - Subject.Map(_parsedEpisodeInfo, 10, 10, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTvRageId(It.IsAny()), Times.Once()); - } - - [Test] - public void should_use_tvdbid_matching_when_alias_is_found() - { - Mocker.GetMock() - .Setup(s => s.FindTvdbId(It.IsAny())) - .Returns(_series.TvdbId); - - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); - - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); + public void should_not_match_with_wrong_year() + { + GivenMatchByMovieTitle(); + Subject.Map(_wrongYearInfo, "", _movieSearchCriteria).Movie.Should().BeNull(); } - [Test] - public void should_use_tvrageid_match_from_search_criteria_when_title_match_fails() - { - GivenParseResultSeriesDoesntMatchSearchCriteria(); + [Test] + public void should_match_alternative_title() + { + Subject.Map(_alternativeTitleInfo, "", _movieSearchCriteria).Movie.Should().Be(_movieSearchCriteria.Movie); + } - Subject.Map(_parsedEpisodeInfo, _series.TvdbId, _series.TvRageId, _singleEpisodeSearchCriteria); + [Test] + public void should_match_roman_title() + { + Subject.Map(_romanTitleInfo, "", _movieSearchCriteria).Movie.Should().Be(_movieSearchCriteria.Movie); + } - Mocker.GetMock() - .Verify(v => v.FindByTitle(It.IsAny()), Times.Never()); - } } } diff --git a/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs index 9dfdeb851..9eaabc1e9 100644 --- a/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/PathParserFixture.cs @@ -7,6 +7,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")]//Is this really necessary with movies? I dont think so public class PathParserFixture : CoreTest { [TestCase(@"z:\tv shows\battlestar galactica (2003)\Season 3\S03E05 - Collaborators.mkv", 3, 5)] diff --git a/src/NzbDrone.Core.Test/ParserTests/SeasonParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/SeasonParserFixture.cs index 7a4ed0b9f..d2924926b 100644 --- a/src/NzbDrone.Core.Test/ParserTests/SeasonParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/SeasonParserFixture.cs @@ -6,6 +6,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class SeasonParserFixture : CoreTest { [TestCase("30.Rock.Season.04.HDTV.XviD-DIMENSION", "30 Rock", 4)] diff --git a/src/NzbDrone.Core.Test/ParserTests/SeriesTitleInfoFixture.cs b/src/NzbDrone.Core.Test/ParserTests/SeriesTitleInfoFixture.cs index 0809aae05..e1340952f 100644 --- a/src/NzbDrone.Core.Test/ParserTests/SeriesTitleInfoFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/SeriesTitleInfoFixture.cs @@ -5,6 +5,7 @@ using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class SeriesTitleInfoFixture : CoreTest { [Test] diff --git a/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs b/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs index 76a585b69..41e57dfda 100644 --- a/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs +++ b/src/NzbDrone.Core.Test/ParserTests/SingleEpisodeParserFixture.cs @@ -7,6 +7,7 @@ namespace NzbDrone.Core.Test.ParserTests { [TestFixture] + [Ignore("Series")] public class SingleEpisodeParserFixture : CoreTest { [TestCase("Sonny.With.a.Chance.S02E15", "Sonny With a Chance", 2, 15)]