|
|
|
@ -77,6 +77,12 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests
|
|
|
|
|
_parsedEpisodeInfo.AbsoluteEpisodeNumbers = new[] { 1 };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void GivenFullSeason()
|
|
|
|
|
{
|
|
|
|
|
_parsedEpisodeInfo.FullSeason = true;
|
|
|
|
|
_parsedEpisodeInfo.EpisodeNumbers = Array.Empty<int>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void should_get_daily_episode_episode_when_search_criteria_is_null()
|
|
|
|
|
{
|
|
|
|
@ -452,5 +458,65 @@ namespace NzbDrone.Core.Test.ParserTests.ParsingServiceTests
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.FindEpisode(_series.Id, _parsedEpisodeInfo.SeasonNumber, _parsedEpisodeInfo.EpisodeNumbers.First()), Times.Once());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void should_lookup_full_season_by_season_number_if_series_does_not_use_scene_numbering()
|
|
|
|
|
{
|
|
|
|
|
GivenFullSeason();
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Setup(s => s.GetEpisodesBySeason(_series.Id, _parsedEpisodeInfo.SeasonNumber))
|
|
|
|
|
.Returns(_episodes);
|
|
|
|
|
|
|
|
|
|
Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySeason(It.IsAny<int>(), It.IsAny<int>()), Times.Once);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySceneSeason(It.IsAny<int>(), It.IsAny<int>()), Times.Never);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void should_lookup_full_season_by_scene_season_number_if_series_uses_scene_numbering()
|
|
|
|
|
{
|
|
|
|
|
GivenSceneNumberingSeries();
|
|
|
|
|
GivenFullSeason();
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Setup(s => s.GetEpisodesBySceneSeason(_series.Id, _parsedEpisodeInfo.SeasonNumber))
|
|
|
|
|
.Returns(_episodes);
|
|
|
|
|
|
|
|
|
|
Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySeason(It.IsAny<int>(), It.IsAny<int>()), Times.Never);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySceneSeason(It.IsAny<int>(), It.IsAny<int>()), Times.Once);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void should_fallback_to_lookup_full_season_by_season_number_if_series_uses_scene_numbering_and_no_epsiodes_are_found_by_scene_season_number()
|
|
|
|
|
{
|
|
|
|
|
GivenSceneNumberingSeries();
|
|
|
|
|
GivenFullSeason();
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Setup(s => s.GetEpisodesBySceneSeason(_series.Id, _parsedEpisodeInfo.SeasonNumber))
|
|
|
|
|
.Returns(new List<Episode>());
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Setup(s => s.GetEpisodesBySeason(_series.Id, _parsedEpisodeInfo.SeasonNumber))
|
|
|
|
|
.Returns(_episodes);
|
|
|
|
|
|
|
|
|
|
Subject.GetEpisodes(_parsedEpisodeInfo, _series, true, null);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySeason(It.IsAny<int>(), It.IsAny<int>()), Times.Once);
|
|
|
|
|
|
|
|
|
|
Mocker.GetMock<IEpisodeService>()
|
|
|
|
|
.Verify(v => v.GetEpisodesBySceneSeason(It.IsAny<int>(), It.IsAny<int>()), Times.Once);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|