using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Jackett.Common.Models.Config; using Jackett.Common.Services.Interfaces; using Jackett.Common.Utils.Clients; using NLog; namespace Jackett.Test { public class TestWebClient : WebClient { private readonly Dictionary> byteCallbacks = new Dictionary>(); private readonly Dictionary> stringCallbacks = new Dictionary>(); public TestWebClient(IProcessService p, Logger l, IConfigurationService c, ServerConfig sc) : base(p: p, l: l, c: c, sc: sc) { } public void RegisterByteCall(WebRequest req, Func f) => byteCallbacks.Add(req, f); public void RegisterStringCall(WebRequest req, Func f) => stringCallbacks.Add(req, f); public override Task GetBytes(WebRequest request) => Task.FromResult(byteCallbacks.Where(r => r.Key.Equals(request)).First().Value.Invoke(request)); public override Task GetString(WebRequest request) => Task.FromResult(stringCallbacks.Where(r => r.Key.Equals(request)).First().Value.Invoke(request)); public override void Init() { } } }