2020-03-03 16:28:26 +00:00
|
|
|
using System;
|
2015-07-25 23:51:55 +00:00
|
|
|
using System.Collections.Generic;
|
2021-11-17 22:04:58 +00:00
|
|
|
using System.Net;
|
|
|
|
using System.Text;
|
2015-07-25 23:51:55 +00:00
|
|
|
using System.Threading.Tasks;
|
2020-02-09 18:08:34 +00:00
|
|
|
using Jackett.Common.Models.Config;
|
|
|
|
using Jackett.Common.Services.Interfaces;
|
|
|
|
using Jackett.Common.Utils.Clients;
|
|
|
|
using NLog;
|
2021-11-17 22:04:58 +00:00
|
|
|
using WebClient = Jackett.Common.Utils.Clients.WebClient;
|
|
|
|
using WebRequest = Jackett.Common.Utils.Clients.WebRequest;
|
2015-07-25 23:51:55 +00:00
|
|
|
|
2020-10-31 00:12:35 +00:00
|
|
|
namespace Jackett.Test.TestHelpers
|
2015-07-25 23:51:55 +00:00
|
|
|
{
|
2017-11-05 09:42:03 +00:00
|
|
|
public class TestWebClient : WebClient
|
2015-07-25 23:51:55 +00:00
|
|
|
{
|
2021-11-17 22:04:58 +00:00
|
|
|
private readonly Dictionary<string, WebResult> _requestCallbacks = new Dictionary<string, WebResult>();
|
|
|
|
|
|
|
|
public TestWebClient() : base(null, null, null, new ServerConfig(null))
|
|
|
|
{
|
|
|
|
}
|
2015-07-25 23:51:55 +00:00
|
|
|
|
2017-11-05 09:42:03 +00:00
|
|
|
public TestWebClient(IProcessService p, Logger l, IConfigurationService c, ServerConfig sc)
|
2020-06-11 15:09:27 +00:00
|
|
|
: base(p, l, c, sc)
|
2016-12-06 13:56:47 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2021-11-17 22:04:58 +00:00
|
|
|
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);
|
|
|
|
}
|
2015-07-25 23:51:55 +00:00
|
|
|
|
2021-11-17 22:04:58 +00:00
|
|
|
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");
|
|
|
|
}
|
2015-07-30 17:50:46 +00:00
|
|
|
|
2020-02-10 22:16:19 +00:00
|
|
|
public override void Init()
|
2015-07-30 17:50:46 +00:00
|
|
|
{
|
|
|
|
}
|
2015-07-25 23:51:55 +00:00
|
|
|
}
|
|
|
|
}
|