1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-23 22:25:56 -04:00

New: Support in services for multiple scene naming/numbering exceptions

This commit is contained in:
Taloth Saldono
2020-12-25 00:26:22 +01:00
committed by Taloth
parent ed2bb0d73a
commit 772448b41b
34 changed files with 604 additions and 339 deletions
@@ -22,26 +22,17 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search.SingleEpisodeSearchMatch
_remoteEpisode.ParsedEpisodeInfo = new ParsedEpisodeInfo();
_remoteEpisode.ParsedEpisodeInfo.SeasonNumber = 5;
_remoteEpisode.ParsedEpisodeInfo.EpisodeNumbers = new[] { 1 };
_remoteEpisode.MappedSeasonNumber = 5;
_searchCriteria.SeasonNumber = 5;
_searchCriteria.EpisodeNumber = 1;
Mocker.GetMock<ISceneMappingService>()
.Setup(v => v.GetTvdbSeasonNumber(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()))
.Returns<string, string, int>((s, r, i) => i);
}
private void GivenMapping(int sceneSeasonNumber, int seasonNumber)
{
Mocker.GetMock<ISceneMappingService>()
.Setup(v => v.GetTvdbSeasonNumber(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()))
.Returns<string, string, int>((s, r, i) => i >= sceneSeasonNumber ? (seasonNumber + i - sceneSeasonNumber) : i);
}
[Test]
public void should_return_false_if_season_does_not_match()
{
_remoteEpisode.ParsedEpisodeInfo.SeasonNumber = 10;
_remoteEpisode.MappedSeasonNumber = 10;
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Accepted.Should().BeFalse();
}
@@ -50,8 +41,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search.SingleEpisodeSearchMatch
public void should_return_true_if_season_matches_after_scenemapping()
{
_remoteEpisode.ParsedEpisodeInfo.SeasonNumber = 10;
GivenMapping(10, 5);
_remoteEpisode.MappedSeasonNumber = 5; // 10 -> 5 mapping
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Accepted.Should().BeTrue();
}
@@ -60,8 +50,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search.SingleEpisodeSearchMatch
public void should_return_false_if_season_does_not_match_after_scenemapping()
{
_remoteEpisode.ParsedEpisodeInfo.SeasonNumber = 10;
GivenMapping(9, 5);
_remoteEpisode.MappedSeasonNumber = 6; // 9 -> 5 mapping
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Accepted.Should().BeFalse();
}