mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
tests: Add basic test for Cardigann HTML (#12581)
This commit is contained in:
@@ -1,32 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Jackett.Common.Models.Config;
|
||||
using Jackett.Common.Services.Interfaces;
|
||||
using Jackett.Common.Utils.Clients;
|
||||
using NLog;
|
||||
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
||||
using WebRequest = Jackett.Common.Utils.Clients.WebRequest;
|
||||
|
||||
namespace Jackett.Test.TestHelpers
|
||||
{
|
||||
|
||||
// Currently not used in any Unit tests. Leaving it for potential future testing purposes.
|
||||
public class TestWebClient : WebClient
|
||||
{
|
||||
private readonly Dictionary<WebRequest, Func<WebRequest, WebResult>> _requestCallbacks = new Dictionary<WebRequest, Func<WebRequest, WebResult>>();
|
||||
private readonly Dictionary<string, WebResult> _requestCallbacks = new Dictionary<string, WebResult>();
|
||||
|
||||
public TestWebClient() : base(null, null, null, new ServerConfig(null))
|
||||
{
|
||||
}
|
||||
|
||||
public TestWebClient(IProcessService p, Logger l, IConfigurationService c, ServerConfig sc)
|
||||
: base(p, l, c, sc)
|
||||
{
|
||||
}
|
||||
|
||||
public void RegisterRequestCallback(WebRequest req, Func<WebRequest, WebResult> f) => _requestCallbacks.Add(req, f);
|
||||
public void RegisterRequestCallback(string requestUrl, string responseFileName)
|
||||
{
|
||||
var contentString = TestUtil.LoadTestFile(responseFileName);
|
||||
var webResult = new WebResult
|
||||
{
|
||||
ContentBytes = Encoding.UTF8.GetBytes(contentString),
|
||||
Status = HttpStatusCode.OK
|
||||
};
|
||||
_requestCallbacks.Add(requestUrl, webResult);
|
||||
}
|
||||
|
||||
public override Task<WebResult> GetResultAsync(WebRequest request) => Task.FromResult(_requestCallbacks.First(r => r.Key.Equals(request)).Value.Invoke(request));
|
||||
public override Task<WebResult> GetResultAsync(WebRequest request)
|
||||
{
|
||||
if (_requestCallbacks.ContainsKey(request.Url))
|
||||
return Task.Factory.StartNew(
|
||||
() =>
|
||||
{
|
||||
var response = _requestCallbacks[request.Url];
|
||||
response.Request = request;
|
||||
return response;
|
||||
});
|
||||
throw new Exception($"You have to mock the URL {request.Url} with RegisterRequestCallback");
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user