28 lines
813 B
C#
28 lines
813 B
C#
using System.Net;
|
|
using System.Net.Http;
|
|
|
|
namespace ClaudeDo.Installer.Tests;
|
|
|
|
internal sealed class FakeHttpMessageHandler : HttpMessageHandler
|
|
{
|
|
private readonly Func<HttpRequestMessage, HttpResponseMessage> _handler;
|
|
|
|
public FakeHttpMessageHandler(Func<HttpRequestMessage, HttpResponseMessage> handler)
|
|
{
|
|
_handler = handler;
|
|
}
|
|
|
|
public FakeHttpMessageHandler(HttpStatusCode status, string body)
|
|
: this(_ => new HttpResponseMessage(status) { Content = new StringContent(body) })
|
|
{
|
|
}
|
|
|
|
public List<HttpRequestMessage> Requests { get; } = new();
|
|
|
|
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
|
|
{
|
|
Requests.Add(request);
|
|
return Task.FromResult(_handler(request));
|
|
}
|
|
}
|