using System ;
using System.IO ;
using FluentAssertions ;
using NUnit.Framework ;
using NzbDrone.Common ;
using NzbDrone.Test.Common ;
using NzbDrone.Update.Providers ;
namespace NzbDrone.Update.Test
{
[TestFixture]
class UpdateProviderVerifyFixture : TestBase
{
[SetUp]
public void Setup ( )
{
Mocker . GetMock < EnvironmentProvider > ( )
. Setup ( c = > c . StartUpPath ) . Returns ( @"C:\Temp\NzbDrone_update\" ) ;
Mocker . GetMock < EnvironmentProvider > ( )
. Setup ( c = > c . SystemTemp ) . Returns ( @"C:\Temp\" ) ;
}
[TestCase(null)]
[TestCase("")]
[TestCase(" ")]
public void update_should_throw_target_folder_is_blank ( string target )
{
Assert . Throws < ArgumentException > ( ( ) = > Mocker . Resolve < UpdateProvider > ( ) . Start ( target ) )
. Message . Should ( ) . StartWith ( "Target folder can not be null or empty" ) ;
}
[Test]
public void update_should_throw_if_target_folder_doesnt_exist ( )
{
string targetFolder = "c:\\NzbDrone\\" ;
Assert . Throws < DirectoryNotFoundException > ( ( ) = > Mocker . Resolve < UpdateProvider > ( ) . Start ( targetFolder ) )
. Message . Should ( ) . StartWith ( "Target folder doesn't exist" ) ;
}
[Test]
public void update_should_throw_if_update_folder_doesnt_exist ( )
{
const string sandboxFolder = @"C:\Temp\NzbDrone_update\nzbdrone" ;
const string targetFolder = "c:\\NzbDrone\\" ;
Mocker . GetMock < DiskProvider > ( )
. Setup ( c = > c . FolderExists ( targetFolder ) )
. Returns ( true ) ;
Mocker . GetMock < DiskProvider > ( )
. Setup ( c = > c . FolderExists ( sandboxFolder ) )
. Returns ( false ) ;
Assert . Throws < DirectoryNotFoundException > ( ( ) = > Mocker . Resolve < UpdateProvider > ( ) . Start ( targetFolder ) )
. Message . Should ( ) . StartWith ( "Update folder doesn't exist" ) ;
}
}
}