Check if root folder is not empty on files import

pull/10514/head
Bogdan 5 months ago
parent 40551ba5a3
commit 9a5f4bef63

@ -48,6 +48,11 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieFileMovingServiceTests
.Returns(@"C:\Test\Movies\Movie\File Name.avi".AsOsAgnostic());
var rootFolder = @"C:\Test\Movies\".AsOsAgnostic();
Mocker.GetMock<IRootFolderService>()
.Setup(s => s.GetBestRootFolderPath(It.IsAny<string>(), null))
.Returns(rootFolder);
Mocker.GetMock<IDiskProvider>()
.Setup(s => s.FolderExists(rootFolder))
.Returns(true);
@ -55,10 +60,6 @@ namespace NzbDrone.Core.Test.MediaFiles.MovieFileMovingServiceTests
Mocker.GetMock<IDiskProvider>()
.Setup(s => s.FileExists(It.IsAny<string>()))
.Returns(true);
Mocker.GetMock<IRootFolderService>()
.Setup(s => s.GetBestRootFolderPath(It.IsAny<string>(), null))
.Returns(rootFolder);
}
[Test]

@ -30,9 +30,9 @@ namespace NzbDrone.Core.MediaFiles
private readonly IDiskProvider _diskProvider;
private readonly IMediaFileAttributeService _mediaFileAttributeService;
private readonly IImportScript _scriptImportDecider;
private readonly IRootFolderService _rootFolderService;
private readonly IEventAggregator _eventAggregator;
private readonly IConfigService _configService;
private readonly IRootFolderService _rootFolderService;
private readonly Logger _logger;
public MovieFileMovingService(IUpdateMovieFileService updateMovieFileService,
@ -41,9 +41,9 @@ namespace NzbDrone.Core.MediaFiles
IDiskProvider diskProvider,
IMediaFileAttributeService mediaFileAttributeService,
IImportScript scriptImportDecider,
IRootFolderService rootFolderService,
IEventAggregator eventAggregator,
IConfigService configService,
IRootFolderService rootFolderService,
Logger logger)
{
_updateMovieFileService = updateMovieFileService;
@ -52,9 +52,9 @@ namespace NzbDrone.Core.MediaFiles
_diskProvider = diskProvider;
_mediaFileAttributeService = mediaFileAttributeService;
_scriptImportDecider = scriptImportDecider;
_rootFolderService = rootFolderService;
_eventAggregator = eventAggregator;
_configService = configService;
_rootFolderService = rootFolderService;
_logger = logger;
}
@ -167,13 +167,17 @@ namespace NzbDrone.Core.MediaFiles
private void EnsureMovieFolder(MovieFile movieFile, Movie movie, string filePath)
{
var movieFileFolder = Path.GetDirectoryName(filePath);
var movieFolder = movie.Path;
var rootFolder = _rootFolderService.GetBestRootFolderPath(movieFolder);
if (rootFolder.IsNullOrWhiteSpace())
{
throw new RootFolderNotFoundException($"Root folder was not found, '{movieFolder}' is not a subdirectory of a defined root folder.");
}
if (!_diskProvider.FolderExists(rootFolder))
{
throw new RootFolderNotFoundException(string.Format("Root folder '{0}' was not found.", rootFolder));
throw new RootFolderNotFoundException($"Root folder '{rootFolder}' was not found.");
}
var changed = false;

Loading…
Cancel
Save