diff --git a/NzbDrone.Core.Test/MediaFileProviderTests.cs b/NzbDrone.Core.Test/MediaFileProviderTests.cs index 6fe658c41..1ed614356 100644 --- a/NzbDrone.Core.Test/MediaFileProviderTests.cs +++ b/NzbDrone.Core.Test/MediaFileProviderTests.cs @@ -166,6 +166,40 @@ namespace NzbDrone.Core.Test Assert.IsNull(result); } + + [Test] + [Description("Verifies that a un-parsable file isn't imported")] + public void import_unparsable_file() + { + //Arrange + ///////////////////////////////////////// + + //Constants + const string fileName = @"WEEDS.avi"; + const int size = 12345; + + //Fakes + var fakeSeries = Builder.CreateNew().Build(); + + //Mocks + var mocker = new AutoMoqer(); + + mocker.GetMock(MockBehavior.Strict) + .Setup(r => r.Exists(It.IsAny>>())).Returns(false).Verifiable(); + + mocker.GetMock() + .Setup(e => e.GetSize(fileName)).Returns(size).Verifiable(); + + + //Act + var result = mocker.Resolve().ImportFile(fakeSeries, fileName); + + //Assert + mocker.VerifyAllMocks(); + Assert.IsNull(result); + ExceptionVerification.ExcpectedWarns(1); + } + [Test] [Description("Verifies that a new file imported properly")] public void import_sample_file() diff --git a/NzbDrone.Core/Providers/MediaFileProvider.cs b/NzbDrone.Core/Providers/MediaFileProvider.cs index 29832ca21..56b3a433c 100644 --- a/NzbDrone.Core/Providers/MediaFileProvider.cs +++ b/NzbDrone.Core/Providers/MediaFileProvider.cs @@ -72,11 +72,13 @@ namespace NzbDrone.Core.Providers if (!_repository.Exists(e => e.Path == Parser.NormalizePath(filePath))) { var parseResult = Parser.ParseEpisodeInfo(filePath); - parseResult.CleanTitle = series.Title;//replaces the nasty path as title to help with logging + if (parseResult == null) return null; + parseResult.CleanTitle = series.Title;//replaces the nasty path as title to help with logging + //Stores the list of episodes to add to the EpisodeFile var episodes = new List();