diff --git a/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs b/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs index d9702c24b..26e8cab7e 100644 --- a/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs +++ b/src/NzbDrone.Core.Test/ImportListTests/ImportListSyncServiceFixture.cs @@ -120,6 +120,17 @@ namespace NzbDrone.Core.Test.ImportListTests private void WithImdbId() { _list1Series.First().ImdbId = "tt0496424"; + + Mocker.GetMock() + .Setup(s => s.SearchForNewSeriesByImdbId(_list1Series.First().ImdbId)) + .Returns( + Builder + .CreateListOfSize(1) + .All() + .With(s => s.Title = "Breaking Bad") + .With(s => s.TvdbId = 81189) + .Build() + .ToList()); } private void WithExistingSeries() @@ -342,6 +353,7 @@ namespace NzbDrone.Core.Test.ImportListTests public void should_add_new_series_from_single_list_to_library() { _importListFetch.Series.ForEach(m => m.ImportListId = 1); + WithTvdbId(); WithList(1, true); WithCleanLevel(ListSyncLevelType.Disabled); @@ -358,6 +370,7 @@ namespace NzbDrone.Core.Test.ImportListTests _importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.AddRange(_list2Series); + WithTvdbId(); WithList(1, true); WithList(2, true); @@ -376,6 +389,7 @@ namespace NzbDrone.Core.Test.ImportListTests _importListFetch.Series.ForEach(m => m.ImportListId = 1); _importListFetch.Series.AddRange(_list2Series); + WithTvdbId(); WithList(1, true); WithList(2, false); @@ -422,12 +436,17 @@ namespace NzbDrone.Core.Test.ImportListTests public void should_search_by_imdb_if_series_title_and_series_imdb() { _importListFetch.Series.ForEach(m => m.ImportListId = 1); + WithList(1, true); WithImdbId(); + Subject.Execute(_commandAll); Mocker.GetMock() .Verify(v => v.SearchForNewSeriesByImdbId(It.IsAny()), Times.Once()); + + Mocker.GetMock() + .Verify(v => v.AddSeries(It.Is>(t => t.Count == 1), It.IsAny())); } [Test] @@ -498,5 +517,18 @@ namespace NzbDrone.Core.Test.ImportListTests Mocker.GetMock() .Verify(v => v.All(), Times.Never); } + + [Test] + public void should_not_add_if_tvdbid_is_0() + { + _importListFetch.Series.ForEach(m => m.ImportListId = 1); + WithList(1, true); + WithExcludedSeries(); + + Subject.Execute(_commandAll); + + Mocker.GetMock() + .Verify(v => v.AddSeries(It.Is>(t => t.Count == 0), It.IsAny())); + } } } diff --git a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs index 2c51ea6c0..eccbed341 100644 --- a/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs +++ b/src/NzbDrone.Core/ImportLists/ImportListSyncService.cs @@ -190,6 +190,12 @@ namespace NzbDrone.Core.ImportLists item.Title = mappedSeries.Title; } + if (item.TvdbId == 0) + { + _logger.Debug("[{0}] Rejected, unable to find TVDB ID", item.Title); + continue; + } + // Check to see if series excluded var excludedSeries = listExclusions.Where(s => s.TvdbId == item.TvdbId).SingleOrDefault(); @@ -202,7 +208,7 @@ namespace NzbDrone.Core.ImportLists // Break if Series Exists in DB if (existingTvdbIds.Any(x => x == item.TvdbId)) { - _logger.Debug("{0} [{1}] Rejected, Series Exists in DB", item.TvdbId, item.Title); + _logger.Debug("{0} [{1}] Rejected, series exists in database", item.TvdbId, item.Title); continue; }