mirror of
https://github.com/Sonarr/Sonarr
synced 2024-12-26 01:37:07 +00:00
99 lines
2.4 KiB
C#
99 lines
2.4 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.IO;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using NzbDrone.Common;
|
|
using NzbDrone.Test.Common.AutoMoq;
|
|
|
|
namespace NzbDrone.Test.Common
|
|
{
|
|
public class TestBase : LoggingTest
|
|
{
|
|
|
|
protected const string INTEGRATION_TEST = "Integration Test";
|
|
|
|
|
|
private AutoMoqer _mocker;
|
|
protected AutoMoqer Mocker
|
|
{
|
|
get
|
|
{
|
|
if (_mocker == null)
|
|
{
|
|
_mocker = new AutoMoqer();
|
|
}
|
|
|
|
return _mocker;
|
|
}
|
|
}
|
|
|
|
protected Mock<RestProvider> MockedRestProvider { get; private set; }
|
|
|
|
|
|
protected string VirtualPath
|
|
{
|
|
get
|
|
{
|
|
var virtualPath = Path.Combine(TempFolder, "VirtualNzbDrone");
|
|
if (!Directory.Exists(virtualPath)) Directory.CreateDirectory(virtualPath);
|
|
|
|
return virtualPath;
|
|
}
|
|
}
|
|
|
|
[SetUp]
|
|
public void TestBaseSetup()
|
|
{
|
|
EnviromentProvider.RegisterNewInstall = true;
|
|
|
|
MockedRestProvider = new Mock<RestProvider>();
|
|
ReportingService.RestProvider = MockedRestProvider.Object;
|
|
|
|
if (Directory.Exists(TempFolder))
|
|
{
|
|
Directory.Delete(TempFolder, true);
|
|
}
|
|
|
|
Directory.CreateDirectory(TempFolder);
|
|
}
|
|
|
|
[TearDown]
|
|
public void TestBaseTearDown()
|
|
{
|
|
_mocker = null;
|
|
}
|
|
|
|
protected void WithStrictMocker()
|
|
{
|
|
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);
|
|
}
|
|
|
|
|
|
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));
|
|
}
|
|
}
|
|
}
|