diff --git a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecificationFixture.cs index d622d2616..9d241a6cb 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecificationFixture.cs @@ -136,7 +136,7 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Specifications } [Test] - public void should_reject_if_episode_title_is_required_for_bulk_season_releases_and_it_is_mising() + public void should_reject_if_episode_title_is_required_for_bulk_season_releases_and_it_is_missing() { _localEpisode.Episodes.First().Title = "TBA"; @@ -154,5 +154,28 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Specifications Subject.IsSatisfiedBy(_localEpisode, null).Accepted.Should().BeFalse(); } + + [Test] + public void should_reject_if_episode_title_is_required_for_bulk_season_releases_and_some_episodes_do_not_have_air_date() + { + _localEpisode.Episodes.First().Title = "TBA"; + + Mocker.GetMock() + .Setup(s => s.EpisodeTitleRequired) + .Returns(EpisodeTitleRequiredType.BulkSeasonReleases); + + + Mocker.GetMock() + .Setup(s => s.GetEpisodesBySeason(It.IsAny(), It.IsAny())) + .Returns(Builder.CreateListOfSize(5) + .All() + .With(e => e.Title = "TBA") + .With(e => e.AirDateUtc = null) + .TheFirst(1) + .With(e => e.AirDateUtc = _localEpisode.Episodes.First().AirDateUtc) + .BuildList()); + + Subject.IsSatisfiedBy(_localEpisode, null).Accepted.Should().BeFalse(); + } } } diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecification.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecification.cs index 5586611c5..669e58bb4 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecification.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Specifications/EpisodeTitleSpecification.cs @@ -55,12 +55,12 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Specifications var firstEpisode = episodes.First(); var episodesInSeason = _episodeService.GetEpisodesBySeason(firstEpisode.SeriesId, firstEpisode.EpisodeNumber); var allEpisodesOnTheSameDay = firstEpisode.AirDateUtc.HasValue && episodes.All(e => - e.AirDateUtc.HasValue && + !e.AirDateUtc.HasValue || e.AirDateUtc.Value == firstEpisode.AirDateUtc.Value); if (episodeTitleRequired == EpisodeTitleRequiredType.BulkSeasonReleases && allEpisodesOnTheSameDay && - episodesInSeason.Count(e => e.AirDateUtc.HasValue && + episodesInSeason.Count(e => !e.AirDateUtc.HasValue || e.AirDateUtc.Value == firstEpisode.AirDateUtc.Value ) < 4 )