diff --git a/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/ProcessDownloadFixture.cs b/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/ProcessDownloadFixture.cs index 96acce702..098f82102 100644 --- a/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/ProcessDownloadFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/ProcessDownloadFixture.cs @@ -421,19 +421,28 @@ public void should_process_if_free_disk_space_equals_size() } [Test] - public void should_return_if_series_path_does_not_exist() + public void should_create_series_directory_if_series_path_does_not_exist() { var downloadName = new DirectoryInfo(@"C:\Test\Drop\30.Rock.S01E01.Pilot"); WithValidSeries(); + WithLotsOfFreeDiskSpace(); + WithImportedFiles(downloadName.FullName); Mocker.GetMock() .Setup(s => s.FolderExists(fakeSeries.Path)) .Returns(false); + Mocker.GetMock().Setup(s => s.GetByTitle("office")).Returns(fakeSeries); + Mocker.GetMock().Setup(s => s.CleanUpDropFolder(downloadName.FullName)); + Mocker.GetMock().Setup(s => s.MoveEpisodeFile(It.IsAny(), true)).Returns(new EpisodeFile()); + Mocker.GetMock().Setup(s => s.GetDirectorySize(downloadName.FullName)).Returns(Constants.IgnoreFileSize - 1.Megabytes()); + Mocker.GetMock().Setup(s => s.DeleteFolder(downloadName.FullName, true)); + Mocker.GetMock().Setup(s => s.IsFolderLocked(downloadName.FullName)).Returns(false); + Mocker.Resolve().ProcessDownload(downloadName); - Mocker.GetMock().Verify(c => c.GetDirectorySize(It.IsAny()), Times.Never()); + Mocker.GetMock().Verify(c => c.CreateDirectory(fakeSeries.Path), Times.Once()); ExceptionVerification.ExpectedWarns(1); } diff --git a/NzbDrone.Core/Providers/PostDownloadProvider.cs b/NzbDrone.Core/Providers/PostDownloadProvider.cs index ae54e9989..0f5fe96ef 100644 --- a/NzbDrone.Core/Providers/PostDownloadProvider.cs +++ b/NzbDrone.Core/Providers/PostDownloadProvider.cs @@ -88,8 +88,8 @@ public virtual void ProcessDownload(DirectoryInfo subfolderInfo) if (!_diskProvider.FolderExists(series.Path)) { - Logger.Warn("Series Folder doesn't exist: {0}", series.Path); - return; + Logger.Warn("Series Folder doesn't exist: {0}, creating it", series.Path); + _diskProvider.CreateDirectory(series.Path); } var size = _diskProvider.GetDirectorySize(subfolderInfo.FullName);