From fb9c2b6d9e29ef8b8b3e316dc05e9dd40987e7ea Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 22 Aug 2011 23:07:04 -0700 Subject: [PATCH] Fixed SceneMappingProvider to resolve an issue with series with multiple clean names failing to return a Scene Name when being looked up via SeriesId. --- NzbDrone.Core.Test/SceneMappingTest.cs | 33 +++++++++++++++++++ .../Providers/SceneMappingProvider.cs | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/NzbDrone.Core.Test/SceneMappingTest.cs b/NzbDrone.Core.Test/SceneMappingTest.cs index a7a69eb52..6f55f2c78 100644 --- a/NzbDrone.Core.Test/SceneMappingTest.cs +++ b/NzbDrone.Core.Test/SceneMappingTest.cs @@ -102,5 +102,38 @@ namespace NzbDrone.Core.Test //Assert Assert.AreEqual(null, seriesId); } + + [Test] + public void GetSceneName_multiple_clean_names() + { + //Test that ensures a series with clean names (office, officeus) can be looked up by seriesId + + //Setup + var fakeMap = Builder.CreateNew() + .With(f => f.CleanTitle = "office") + .With(f => f.SeriesId = 12345) + .With(f => f.SceneName = "The Office") + .Build(); + + var fakeMap2 = Builder.CreateNew() + .With(f => f.CleanTitle = "officeus") + .With(f => f.SeriesId = 12345) + .With(f => f.SceneName = "The Office") + .Build(); + + var mocker = new AutoMoqer(); + + var db = MockLib.GetEmptyDatabase(); + mocker.SetConstant(db); + + db.Insert(fakeMap); + db.Insert(fakeMap2); + + //Act + var sceneName = mocker.Resolve().GetSceneName(fakeMap.SeriesId); + + //Assert + Assert.AreEqual(fakeMap.SceneName, sceneName); + } } } diff --git a/NzbDrone.Core/Providers/SceneMappingProvider.cs b/NzbDrone.Core/Providers/SceneMappingProvider.cs index 3dbceb3ce..4ecf262ab 100644 --- a/NzbDrone.Core/Providers/SceneMappingProvider.cs +++ b/NzbDrone.Core/Providers/SceneMappingProvider.cs @@ -72,7 +72,7 @@ namespace NzbDrone.Core.Providers public virtual string GetSceneName(int seriesId) { - var item = _database.SingleOrDefault("WHERE SeriesId = @0", seriesId); + var item = _database.FirstOrDefault("WHERE SeriesId = @0", seriesId); if (item == null) return null;