diff --git a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs index 3d681451de..85c61e73b6 100644 --- a/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/DecisionEngineTests/MonitoredEpisodeSpecificationFixture.cs @@ -105,10 +105,23 @@ public void only_second_episode_not_monitored_should_return_monitored() } [Test] - public void should_return_true_if_it_is_a_search() + public void should_return_true_for_single_episode_search() { _fakeSeries.Monitored = false; - _monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultMulti, new SeasonSearchCriteria()).Accepted.Should().BeTrue(); + _monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, new SingleEpisodeSearchCriteria()).Accepted.Should().BeTrue(); + } + + [Test] + public void should_return_true_if_episode_is_monitored_for_season_search() + { + _monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, new SeasonSearchCriteria()).Accepted.Should().BeTrue(); + } + + [Test] + public void should_return_false_if_episode_is_not_monitored_for_season_search() + { + WithFirstEpisodeUnmonitored(); + _monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, new SeasonSearchCriteria()).Accepted.Should().BeFalse(); } } } \ No newline at end of file diff --git a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs index dadd2dafd2..5a5490a194 100644 --- a/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs +++ b/src/NzbDrone.Core/DecisionEngine/Specifications/RssSync/MonitoredEpisodeSpecification.cs @@ -20,8 +20,11 @@ public virtual Decision IsSatisfiedBy(RemoteEpisode subject, SearchCriteriaBase { if (searchCriteria != null) { - _logger.Debug("Skipping monitored check during search"); - return Decision.Accept(); + if ((searchCriteria as SeasonSearchCriteria) == null) + { + _logger.Debug("Skipping monitored check during search"); + return Decision.Accept(); + } } if (!subject.Series.Monitored) diff --git a/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs b/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs index 472a9d36eb..7f336ebb6b 100644 --- a/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs +++ b/src/NzbDrone.Core/IndexerSearch/SeriesSearchService.cs @@ -35,7 +35,7 @@ public void Execute(SeriesSearchCommand message) { if (!season.Monitored) { - _logger.Debug("Season {0} of {1} is not monitored, skipping seaarch", season.SeasonNumber, series.Title); + _logger.Debug("Season {0} of {1} is not monitored, skipping search", season.SeasonNumber, series.Title); continue; }