using System ;
using System.Linq ;
using FluentAssertions ;
using Moq ;
using NUnit.Framework ;
using NzbDrone.Test.Common ;
namespace NzbDrone.Common.Test
{
[TestFixture]
public class PathExtentionFixture : TestBase
{
private EnvironmentProvider GetEnviromentProvider ( )
{
var envMoq = new Mock < EnvironmentProvider > ( ) ;
envMoq . SetupGet ( c = > c . ApplicationPath ) . Returns ( @"C:\NzbDrone\" ) ;
envMoq . SetupGet ( c = > c . SystemTemp ) . Returns ( @"C:\Temp\" ) ;
return envMoq . Object ;
}
[TestCase(@"c:\test\", @"c:\test")]
[TestCase(@"c:\\test\\", @"c:\test")]
[TestCase(@"C:\\Test\\", @"C:\Test")]
[TestCase(@"C:\\Test\\Test\", @"C:\Test\Test")]
[TestCase(@"\\Testserver\Test\", @"\\Testserver\Test")]
public void Normalize_Path ( string dirty , string clean )
{
var result = dirty . NormalizePath ( ) ;
result . Should ( ) . Be ( clean ) ;
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Path can not be null or empty")]
public void normalize_path_exception_empty ( )
{
"" . NormalizePath ( ) ;
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Path can not be null or empty")]
public void normalize_path_exception_null ( )
{
string nullPath = null ;
nullPath . NormalizePath ( ) ;
}
[Test]
public void AppDataDirectory_path_test ( )
{
GetEnviromentProvider ( ) . GetAppDataPath ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\NzbDrone.Web\App_Data\" ) ;
}
[Test]
public void Config_path_test ( )
{
GetEnviromentProvider ( ) . GetConfigPath ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\Config.xml" ) ;
}
[Test]
public void IISConfig_path_test ( )
{
GetEnviromentProvider ( ) . GetIISConfigPath ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\IISExpress\AppServer\applicationhost.config" ) ;
}
[Test]
public void IISExe_path_test ( )
{
GetEnviromentProvider ( ) . GetIISExe ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\IISExpress\IISExpress.exe" ) ;
}
[Test]
public void NlogConfig_path_test ( )
{
GetEnviromentProvider ( ) . GetNlogConfigPath ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\NzbDrone.Web\log.config" ) ;
}
[Test]
public void Sanbox ( )
{
GetEnviromentProvider ( ) . GetUpdateSandboxFolder ( ) . Should ( ) . BeEquivalentTo ( @"C:\Temp\Nzbdrone_update\" ) ;
}
[Test]
public void GetUpdatePackageFolder ( )
{
GetEnviromentProvider ( ) . GetUpdatePackageFolder ( ) . Should ( ) . BeEquivalentTo ( @"C:\Temp\Nzbdrone_update\NzbDrone\" ) ;
}
[Test]
public void GetUpdateClientFolder ( )
{
GetEnviromentProvider ( ) . GetUpdateClientFolder ( ) . Should ( ) . BeEquivalentTo ( @"C:\Temp\Nzbdrone_update\NzbDrone\NzbDrone.Update\" ) ;
}
[Test]
public void GetUpdateClientExePath ( )
{
GetEnviromentProvider ( ) . GetUpdateClientExePath ( ) . Should ( ) . BeEquivalentTo ( @"C:\Temp\Nzbdrone_update\NzbDrone.Update.exe" ) ;
}
[Test]
public void GetSandboxLogFolder ( )
{
GetEnviromentProvider ( ) . GetSandboxLogFolder ( ) . Should ( ) . BeEquivalentTo ( @"C:\Temp\Nzbdrone_update\UpdateLogs\" ) ;
}
[Test]
public void GetUpdateLogFolder ( )
{
GetEnviromentProvider ( ) . GetUpdateLogFolder ( ) . Should ( ) . BeEquivalentTo ( @"C:\NzbDrone\UpdateLogs\" ) ;
}
}
}