2011-12-15 07:15:53 +03:00
using System ;
using System.Linq ;
2011-11-13 10:27:16 +03:00
using System.IO ;
using Moq ;
using NUnit.Framework ;
using NzbDrone.Common ;
2011-11-14 03:22:18 +03:00
using NzbDrone.Test.Common.AutoMoq ;
2011-11-13 10:27:16 +03:00
namespace NzbDrone.Test.Common
{
public class TestBase : LoggingTest
{
2011-11-14 03:22:18 +03:00
2011-12-02 04:33:17 +03:00
protected const string INTEGRATION_TEST = "Integration Test" ;
2011-11-14 03:22:18 +03:00
2012-02-05 09:34:36 +03:00
2011-12-15 07:15:53 +03:00
private AutoMoqer _mocker ;
protected AutoMoqer Mocker
{
get
{
if ( _mocker = = null )
{
_mocker = new AutoMoqer ( ) ;
}
return _mocker ;
}
}
2011-11-13 10:27:16 +03:00
2012-02-05 09:34:36 +03:00
protected Mock < RestProvider > MockedRestProvider { get ; private set ; }
2011-11-13 10:27:16 +03:00
protected string VirtualPath
{
get
{
var virtualPath = Path . Combine ( TempFolder , "VirtualNzbDrone" ) ;
if ( ! Directory . Exists ( virtualPath ) ) Directory . CreateDirectory ( virtualPath ) ;
return virtualPath ;
}
}
[SetUp]
2011-11-13 22:15:40 +03:00
public void TestBaseSetup ( )
2011-11-13 10:27:16 +03:00
{
2012-02-15 08:16:37 +03:00
EnviromentProvider . RegisterNewInstall = true ;
2012-02-05 09:34:36 +03:00
MockedRestProvider = new Mock < RestProvider > ( ) ;
ReportingService . RestProvider = MockedRestProvider . Object ;
2011-12-12 11:05:18 +03:00
if ( Directory . Exists ( TempFolder ) )
2011-11-13 10:27:16 +03:00
{
Directory . Delete ( TempFolder , true ) ;
}
Directory . CreateDirectory ( TempFolder ) ;
}
2011-11-13 22:15:40 +03:00
[TearDown]
public void TestBaseTearDown ( )
{
2011-12-15 07:15:53 +03:00
_mocker = null ;
2011-11-13 22:15:40 +03:00
}
2011-12-02 04:37:38 +03:00
protected void WithStrictMocker ( )
2011-11-13 10:27:16 +03:00
{
2011-12-15 07:15:53 +03:00
if ( _mocker ! = null )
throw new InvalidOperationException ( "Can not switch to a strict container after container has been used. make sure this is the first call in your test." ) ;
_mocker = new AutoMoqer ( MockBehavior . Strict ) ;
2011-11-13 10:27:16 +03:00
}
protected void WithTempAsAppPath ( )
{
Mocker . GetMock < EnviromentProvider > ( )
. SetupGet ( c = > c . ApplicationPath )
. Returns ( VirtualPath ) ;
}
protected string TempFolder
{
get { return Path . Combine ( Directory . GetCurrentDirectory ( ) , "temp" ) ; }
}
protected string GetTestFilePath ( string fileName )
{
return Path . Combine ( @".\Files\" , fileName ) ;
}
protected string ReadTestFile ( string fileName )
{
return File . ReadAllText ( GetTestFilePath ( fileName ) ) ;
}
}
}