mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-13 16:43:58 -07:00
Moved source code under src folder - massive change
This commit is contained in:
parent
2fc8123d6b
commit
5bf0e197ec
1499 changed files with 1054 additions and 1444 deletions
187
src/NzbDrone.Test.Common/TestBase.cs
Normal file
187
src/NzbDrone.Test.Common/TestBase.cs
Normal file
|
@ -0,0 +1,187 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
using NLog;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Common;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Common.Messaging;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
using NzbDrone.Test.Common.AutoMoq;
|
||||
|
||||
namespace NzbDrone.Test.Common
|
||||
{
|
||||
public abstract class TestBase<TSubject> : TestBase where TSubject : class
|
||||
{
|
||||
|
||||
private TSubject _subject;
|
||||
|
||||
[SetUp]
|
||||
public void CoreTestSetup()
|
||||
{
|
||||
_subject = null;
|
||||
|
||||
}
|
||||
|
||||
protected TSubject Subject
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_subject == null)
|
||||
{
|
||||
_subject = Mocker.Resolve<TSubject>();
|
||||
}
|
||||
|
||||
return _subject;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public abstract class TestBase : LoggingTest
|
||||
{
|
||||
|
||||
private static readonly Random _random = new Random();
|
||||
|
||||
private AutoMoqer _mocker;
|
||||
protected AutoMoqer Mocker
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_mocker == null)
|
||||
{
|
||||
_mocker = new AutoMoqer();
|
||||
}
|
||||
|
||||
return _mocker;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected int RandomNumber
|
||||
{
|
||||
get
|
||||
{
|
||||
Thread.Sleep(1);
|
||||
return _random.Next(0, int.MaxValue);
|
||||
}
|
||||
}
|
||||
|
||||
private string VirtualPath
|
||||
{
|
||||
get
|
||||
{
|
||||
var virtualPath = Path.Combine(TempFolder, "VirtualNzbDrone");
|
||||
if (!Directory.Exists(virtualPath)) Directory.CreateDirectory(virtualPath);
|
||||
|
||||
return virtualPath;
|
||||
}
|
||||
}
|
||||
|
||||
protected string TempFolder { get; private set; }
|
||||
|
||||
[SetUp]
|
||||
public void TestBaseSetup()
|
||||
{
|
||||
|
||||
GetType().IsPublic.Should().BeTrue("All Test fixtures should be public to work in mono.");
|
||||
|
||||
Mocker.SetConstant<ICacheManger>(new CacheManger());
|
||||
|
||||
Mocker.SetConstant(LogManager.GetLogger("TestLogger"));
|
||||
|
||||
Mocker.SetConstant<IStartupArguments>(new StartupArguments(new string[0]));
|
||||
|
||||
LogManager.ReconfigExistingLoggers();
|
||||
|
||||
TempFolder = Path.Combine(Directory.GetCurrentDirectory(), "_temp_" + DateTime.Now.Ticks);
|
||||
|
||||
Directory.CreateDirectory(TempFolder);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TestBaseTearDown()
|
||||
{
|
||||
_mocker = null;
|
||||
|
||||
try
|
||||
{
|
||||
if (Directory.Exists(TempFolder))
|
||||
{
|
||||
Directory.Delete(TempFolder, true);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected IAppFolderInfo TestFolderInfo { get; private set; }
|
||||
|
||||
protected void WindowsOnly()
|
||||
{
|
||||
if (OsInfo.IsLinux)
|
||||
{
|
||||
throw new IgnoreException("windows specific test");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void LinuxOnly()
|
||||
{
|
||||
if (!OsInfo.IsLinux)
|
||||
{
|
||||
throw new IgnoreException("linux specific test");
|
||||
}
|
||||
}
|
||||
|
||||
protected void WithTempAsAppPath()
|
||||
{
|
||||
Mocker.GetMock<IAppFolderInfo>()
|
||||
.SetupGet(c => c.AppDataFolder)
|
||||
.Returns(VirtualPath);
|
||||
|
||||
TestFolderInfo = Mocker.GetMock<IAppFolderInfo>().Object;
|
||||
}
|
||||
|
||||
protected string GetTestFilePath(string fileName)
|
||||
{
|
||||
return Path.Combine(SandboxFolder, fileName);
|
||||
}
|
||||
|
||||
protected string GetTestFilePath()
|
||||
{
|
||||
return GetTestFilePath(Path.GetRandomFileName());
|
||||
}
|
||||
|
||||
protected string SandboxFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
var folder = Path.Combine(Directory.GetCurrentDirectory(), "Files");
|
||||
Directory.CreateDirectory(folder);
|
||||
return folder;
|
||||
}
|
||||
|
||||
}
|
||||
protected void VerifyEventPublished<TEvent>() where TEvent : class, IEvent
|
||||
{
|
||||
VerifyEventPublished<TEvent>(Times.Once());
|
||||
}
|
||||
|
||||
protected void VerifyEventPublished<TEvent>(Times times) where TEvent : class, IEvent
|
||||
{
|
||||
Mocker.GetMock<IEventAggregator>().Verify(c => c.PublishEvent(It.IsAny<TEvent>()), times);
|
||||
}
|
||||
|
||||
protected void VerifyEventNotPublished<TEvent>() where TEvent : class, IEvent
|
||||
{
|
||||
Mocker.GetMock<IEventAggregator>().Verify(c => c.PublishEvent(It.IsAny<TEvent>()), Times.Never());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue