using System.Threading; using NLog; using NUnit.Framework; using NzbDrone.Core.Indexers.Newznab; using NzbDrone.Test.Common; using Readarr.Http.ClientSchema; namespace NzbDrone.Integration.Test { [Parallelizable(ParallelScope.Fixtures)] public abstract class IntegrationTest : IntegrationTestBase { protected static int StaticPort = 8787; protected NzbDroneRunner _runner; public override string AuthorRootFolder => GetTempDirectory("AuthorRootFolder"); protected int Port { get; private set; } protected override string RootUrl => $"http://localhost:{Port}/"; protected override string ApiKey => _runner.ApiKey; protected override void StartTestTarget() { Port = Interlocked.Increment(ref StaticPort); _runner = new NzbDroneRunner(LogManager.GetCurrentClassLogger(), Port); _runner.Kill(); _runner.Start(); } protected override void InitializeTestTarget() { Indexers.Post(new Readarr.Api.V1.Indexers.IndexerResource { EnableRss = false, EnableInteractiveSearch = false, EnableAutomaticSearch = false, ConfigContract = nameof(NewznabSettings), Implementation = nameof(Newznab), Name = "NewznabTest", Protocol = Core.Indexers.DownloadProtocol.Usenet, Fields = SchemaBuilder.ToSchema(new NewznabSettings()) }); // Change Console Log Level to Debug so we get more details. var config = HostConfig.Get(1); config.ConsoleLogLevel = "Debug"; HostConfig.Put(config); } protected override void StopTestTarget() { _runner.Kill(); } } }