Fixed: Multiple Scene Mapping exception even when the mappings pointed to the same tvdbid.

Closes #1917
This commit is contained in:
Taloth Saldono 2017-05-11 06:32:09 +02:00
parent 95c81f8905
commit c184e7ddcc
2 changed files with 18 additions and 2 deletions

View File

@ -346,6 +346,20 @@ namespace NzbDrone.Core.Test.DataAugmentation.Scene
Assert.Throws<InvalidSceneMappingException>(() => Subject.FindTvdbId("Amareto", "Amareto.S01E01.720p.WEB-DL-Viva"));
}
[Test]
public void should_not_throw_if_multiple_mappings_with_same_tvdbid()
{
var mappings = new List<SceneMapping>
{
new SceneMapping { Title = "Amareto", ParseTerm = "amareto", SearchTerm = "Amareto", TvdbId = 100 },
new SceneMapping { Title = "Amareto", ParseTerm = "amareto", SearchTerm = "Amareto", TvdbId = 100 }
};
Mocker.GetMock<ISceneMappingRepository>().Setup(c => c.All()).Returns(mappings);
Subject.FindTvdbId("Amareto", "Amareto.S01E01.720p.WEB-DL-Viva").Should().Be(100);
}
private void AssertNoUpdate()
{
_provider1.Verify(c => c.GetSceneMappings(), Times.Once());

View File

@ -102,9 +102,11 @@ namespace NzbDrone.Core.DataAugmentation.Scene
return null;
}
if (mappings.Count <= 1)
var distinctMappings = mappings.DistinctBy(v => v.TvdbId).ToList();
if (distinctMappings.Count <= 1)
{
return mappings.FirstOrDefault();
return distinctMappings.FirstOrDefault();
}
throw new InvalidSceneMappingException(mappings);