diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs index 38fa525b9..2ac449909 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/DownloadDecisionMakerFixture.cs @@ -151,19 +151,17 @@ namespace NzbDrone.Core.Test.DecisionEngineTests GivenSpecifications(_pass1, _pass2, _pass3); _reports[0].Title = "Not parsable"; - var results = Subject.GetRssDecision(_reports).ToList(); + Subject.GetRssDecision(_reports).ToList(); Mocker.GetMock().Verify(c => c.Map(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Never()); _pass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); _pass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); _pass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); - - results.Should().BeEmpty(); } [Test] - public void should_not_attempt_to_map_episode_series_title_is_blank() + public void should_not_attempt_to_map_episode_if_series_title_is_blank() { GivenSpecifications(_pass1, _pass2, _pass3); _reports[0].Title = "1937 - Snow White and the Seven Dwarves"; @@ -179,6 +177,21 @@ namespace NzbDrone.Core.Test.DecisionEngineTests results.Should().BeEmpty(); } + [Test] + public void should_return_rejected_result_for_unparsable_search() + { + GivenSpecifications(_pass1, _pass2, _pass3); + _reports[0].Title = "1937 - Snow White and the Seven Dwarves"; + + Subject.GetSearchDecision(_reports, new SingleEpisodeSearchCriteria()).ToList(); + + Mocker.GetMock().Verify(c => c.Map(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()), Times.Never()); + + _pass1.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + _pass2.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + _pass3.Verify(c => c.IsSatisfiedBy(It.IsAny(), null), Times.Never()); + } + [Test] public void should_not_attempt_to_make_decision_if_series_is_unknown() { diff --git a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs index f7e46fa0f..368eb6b23 100644 --- a/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs +++ b/src/NzbDrone.Core/DecisionEngine/DownloadDecisionMaker.cs @@ -113,6 +113,16 @@ namespace NzbDrone.Core.DecisionEngine decision = GetDecisionForReport(remoteEpisode, searchCriteria); } } + + if (parsedEpisodeInfo == null || parsedEpisodeInfo.SeriesTitle.IsNullOrWhiteSpace() && searchCriteria != null) + { + var remoteEpisode = new RemoteEpisode + { + Release = report + }; + + decision = new DownloadDecision(remoteEpisode, new Rejection("Unable to parse release")); + } } catch (Exception e) {