using System; using NUnit.Framework; using NzbDrone.Common.Cache; using NzbDrone.Common.Cloud; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Http; using NzbDrone.Common.Http.Dispatchers; using NzbDrone.Common.Http.Proxy; using NzbDrone.Common.TPL; using NzbDrone.Core.Configuration; using NzbDrone.Core.Http; using NzbDrone.Core.Security; using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.Framework { public abstract class CoreTest : TestBase { protected void UseRealHttp() { Mocker.GetMock().SetupGet(c => c.Version).Returns(new Version("3.0.0")); Mocker.GetMock().SetupGet(c => c.Version).Returns("1.0.0"); Mocker.GetMock().SetupGet(c => c.Name).Returns("TestOS"); Mocker.SetConstant(new HttpProxySettingsProvider(Mocker.Resolve())); Mocker.SetConstant(new ManagedWebProxyFactory(Mocker.Resolve())); Mocker.SetConstant(new X509CertificateValidationService(Mocker.Resolve(), TestLogger)); Mocker.SetConstant(new ManagedHttpDispatcher(Mocker.Resolve(), Mocker.Resolve(), Mocker.Resolve(), Mocker.Resolve(), Mocker.Resolve(), TestLogger)); Mocker.SetConstant(new HttpClient(Array.Empty(), Mocker.Resolve(), Mocker.Resolve(), Mocker.Resolve(), TestLogger)); Mocker.SetConstant(new ProwlarrCloudRequestBuilder()); } } public abstract class CoreTest : CoreTest where TSubject : class { private TSubject _subject; [SetUp] public void CoreTestSetup() { _subject = null; } protected TSubject Subject { get { if (_subject == null) { _subject = Mocker.Resolve(); } return _subject; } } } }