Duplicated root folders are now blocked.

This commit is contained in:
kay.one 2012-01-18 21:04:55 -08:00
parent 3cb61e4c34
commit d967d4198c
3 changed files with 21 additions and 15 deletions

View File

@ -92,7 +92,6 @@ namespace NzbDrone.Core.Test.ProviderTests
}
[Test]
public void None_existing_folder_returns_empty_list()
{
@ -123,5 +122,16 @@ namespace NzbDrone.Core.Test.ProviderTests
);
}
[Test]
public void adding_duplicated_root_folder_should_throw()
{
WithRealDb();
//Act
var rootDirProvider = Mocker.Resolve<RootDirProvider>();
rootDirProvider.Add(new RootDir { Path = @"C:\TV" });
Assert.Throws<InvalidOperationException>(() => rootDirProvider.Add(new RootDir { Path = @"C:\TV" }));
}
}
}

View File

@ -34,7 +34,15 @@ namespace NzbDrone.Core.Providers
public virtual void Add(RootDir rootDir)
{
ValidatePath(rootDir);
if (String.IsNullOrWhiteSpace(rootDir.Path) || !Path.IsPathRooted(rootDir.Path))
throw new ArgumentException("Invalid path");
if (!_diskProvider.FolderExists(rootDir.Path))
throw new DirectoryNotFoundException("Can't add root directory that doesn't exist.");
if (GetAll().Exists(r => DiskProvider.PathEquals(r.Path, rootDir.Path)))
throw new InvalidOperationException("Root directory already exist.");
_database.Insert(rootDir);
}
@ -43,19 +51,6 @@ namespace NzbDrone.Core.Providers
_database.Delete<RootDir>(rootDirId);
}
private void ValidatePath(RootDir rootDir)
{
if (String.IsNullOrWhiteSpace(rootDir.Path) || !Path.IsPathRooted(rootDir.Path))
{
throw new ArgumentException("Invalid path");
}
if (!_diskProvider.FolderExists(rootDir.Path))
{
throw new DirectoryNotFoundException("Can't add root directory that doesn't exist.");
}
}
public List<String> GetUnmappedFolders(string path)
{
Logger.Debug("Generating list of unmapped folders");

View File

@ -93,6 +93,7 @@ namespace NzbDrone.Core.Providers
return Send(email, _configProvider.SmtpServer, _configProvider.SmtpPort, _configProvider.SmtpUseSsl, credentials);
}
//TODO: make this throw instead of return false.
public virtual bool Send(MailMessage email, string server, int port, bool ssl, NetworkCredential credentials)
{
try