diff --git a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodesFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodesFixture.cs index 2ba2d3a0c..699d75ff3 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodesFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodesFixture.cs @@ -3,6 +3,7 @@ using System.Linq; using FizzWare.NBuilder; using Moq; using NUnit.Framework; +using NzbDrone.Common.Extensions; using NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.Aggregators; using NzbDrone.Core.Parser; using NzbDrone.Core.Parser.Model; @@ -124,5 +125,28 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators Mocker.GetMock() .Verify(v => v.GetEpisodes(fileEpisodeInfo, _series, localEpisode.SceneSource, null), Times.Once()); } + + [Test] + public void should_use_special_info_when_not_null() + { + var fileEpisodeInfo = Parser.Parser.ParseTitle("S00E01"); + var specialEpisodeInfo = fileEpisodeInfo.JsonClone(); + + var localEpisode = new LocalEpisode + { + FileEpisodeInfo = fileEpisodeInfo, + Path = @"C:\Test\TV\Series\Specials\S00E01.mkv".AsOsAgnostic(), + Series = _series + }; + + Mocker.GetMock() + .Setup(s => s.ParseSpecialEpisodeTitle(fileEpisodeInfo, It.IsAny(), _series)) + .Returns(specialEpisodeInfo); + + Subject.Aggregate(localEpisode, false); + + Mocker.GetMock() + .Verify(v => v.GetEpisodes(specialEpisodeInfo, _series, localEpisode.SceneSource, null), Times.Once()); + } } } diff --git a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodes.cs b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodes.cs index 01ae38ed3..d64f5f506 100644 --- a/src/NzbDrone.Core/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodes.cs +++ b/src/NzbDrone.Core/MediaFiles/EpisodeImport/Aggregation/Aggregators/AggregateEpisodes.cs @@ -49,7 +49,10 @@ namespace NzbDrone.Core.MediaFiles.EpisodeImport.Aggregation.Aggregators var title = Path.GetFileNameWithoutExtension(localEpisode.Path); var specialEpisodeInfo = _parsingService.ParseSpecialEpisodeTitle(parsedEpisodeInfo, title, localEpisode.Series); - return specialEpisodeInfo; + if (specialEpisodeInfo != null) + { + parsedEpisodeInfo = specialEpisodeInfo; + } } return parsedEpisodeInfo;