From bc7e543c4df0a0ef78c86a5676f050c91f8810ce Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 15 May 2013 17:25:51 -0700 Subject: [PATCH] Fixed broken tests --- .../DropFolderImportServiceFixture.cs | 38 +++------ .../DownloadedEpisodesImportService.cs | 81 ++++++++++--------- 2 files changed, 53 insertions(+), 66 deletions(-) diff --git a/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/DropFolderImportServiceFixture.cs b/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/DropFolderImportServiceFixture.cs index 7333bdcad..5c7127efa 100644 --- a/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/DropFolderImportServiceFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/PostDownloadProviderTests/DropFolderImportServiceFixture.cs @@ -4,6 +4,7 @@ using FizzWare.NBuilder; using Moq; using NUnit.Framework; using NzbDrone.Common; +using NzbDrone.Core.Configuration; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Parser; using NzbDrone.Core.Tv; @@ -17,7 +18,6 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests { private EpisodeFile _fakeEpisodeFile; - private string[] _subFolders = new[] { "c:\\root\\foldername" }; private string[] _videoFiles = new[] { "c:\\root\\foldername\\video.ext" }; @@ -32,6 +32,9 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests Mocker.GetMock().Setup(c => c.GetDirectories(It.IsAny())) .Returns(_subFolders); + + Mocker.GetMock().SetupGet(c => c.DownloadedEpisodesFolder) + .Returns("c:\\drop\\"); } private void WithOldWrite() @@ -55,7 +58,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests [Test] public void should_import_file() { - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); VerifyImport(); } @@ -65,46 +68,29 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests { WithRecentFolderWrite(); - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); VerifyNoImport(); } - [Test] public void should_search_for_series_using_folder_name() { WithOldWrite(); - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); Mocker.GetMock().Verify(c => c.GetSeries("foldername"), Times.Once()); } - [Test] - public void should_search_for_series_using_file_name() - { - /*WithOldWrite(); - WithValidSeries(); - WithImportableFiles(); - - var droppedFolder = new DirectoryInfo(@"C:\Test\Unsorted TV\The Office - S01E01 - Episode Title"); - Subject.ProcessDownload(droppedFolder); - - Mocker.GetMock() - .Verify(c => c.Scan(_fakeSeries, It.IsAny()));*/ - - } - - [Test] public void all_imported_files_should_be_moved() { Mocker.GetMock().Setup(c => c.ImportFile(It.IsAny(), It.IsAny())) .Returns(_fakeEpisodeFile); - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); Mocker.GetMock().Verify(c => c.MoveEpisodeFile(_fakeEpisodeFile, true), Times.Once()); } @@ -115,12 +101,11 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests Mocker.GetMock().Setup(c => c.ImportFile(It.IsAny(), It.IsAny())) .Returns(null); - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); Mocker.GetMock().Verify(c => c.MoveEpisodeFile(It.IsAny(), It.IsAny()), Times.Never()); } - [Test] public void should_skip_if_folder_is_in_use_by_another_process() { @@ -128,19 +113,16 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests Mocker.GetMock().Setup(c => c.IsFileLocked(It.IsAny())) .Returns(true); - Subject.ProcessDropFolder("c:\\drop\\"); + Subject.ProcessDownloadedEpiosdesFolder(); VerifyNoImport(); } - - private void VerifyNoImport() { Mocker.GetMock().Verify(c => c.ImportFile(It.IsAny(), It.IsAny()), Times.Never()); } - private void VerifyImport() { Mocker.GetMock().Verify(c => c.ImportFile(It.IsAny(), It.IsAny()), diff --git a/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs b/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs index 2f2123735..3d73f83c1 100644 --- a/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs +++ b/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs @@ -37,6 +37,48 @@ namespace NzbDrone.Core.MediaFiles _logger = logger; } + public void ProcessDownloadedEpiosdesFolder() + { + //TODO: We should also process the download client's category folder + var downloadedEpisodesFolder = _configService.DownloadedEpisodesFolder; + + if (String.IsNullOrEmpty(downloadedEpisodesFolder)) + { + _logger.Warn("Downloaded Episodes Folder is not configured"); + return; + } + + foreach (var subfolder in _diskProvider.GetDirectories(downloadedEpisodesFolder)) + { + try + { + if (!_seriesService.SeriesPathExists(subfolder)) + { + ProcessSubFolder(new DirectoryInfo(subfolder)); + } + } + catch (Exception e) + { + _logger.ErrorException("An error has occurred while importing folder: " + subfolder, e); + } + } + + foreach (var videoFile in _diskScanService.GetVideoFiles(downloadedEpisodesFolder, false)) + { + try + { + var series = _parsingService.GetSeries(videoFile); + ProcessVideoFile(videoFile, series); + } + catch (Exception ex) + { + _logger.ErrorException("An error has occurred while importing video file" + videoFile, ex); + } + } + + //TODO: cleanup empty folders + } + public void ProcessSubFolder(DirectoryInfo subfolderInfo) { if (_diskProvider.GetLastFolderWrite(subfolderInfo.FullName).AddMinutes(2) > DateTime.UtcNow) @@ -85,44 +127,7 @@ namespace NzbDrone.Core.MediaFiles public void Execute(DownloadedEpisodesScanCommand message) { - //TODO: We should also process the download client's category folder - var downloadedEpisodesFolder = _configService.DownloadedEpisodesFolder; - - if (String.IsNullOrEmpty(downloadedEpisodesFolder)) - { - _logger.Warn("Downloaded Episodes Folder is not configured"); - return; - } - - foreach (var subfolder in _diskProvider.GetDirectories(downloadedEpisodesFolder)) - { - try - { - if (!_seriesService.SeriesPathExists(subfolder)) - { - ProcessSubFolder(new DirectoryInfo(subfolder)); - } - } - catch (Exception e) - { - _logger.ErrorException("An error has occurred while importing folder: " + subfolder, e); - } - } - - foreach (var videoFile in _diskScanService.GetVideoFiles(downloadedEpisodesFolder, false)) - { - try - { - var series = _parsingService.GetSeries(videoFile); - ProcessVideoFile(videoFile, series); - } - catch (Exception ex) - { - _logger.ErrorException("An error has occurred while importing video file" + videoFile, ex); - } - } - - //TODO: cleanup empty folders + ProcessDownloadedEpiosdesFolder(); } } } \ No newline at end of file