Files
ClaudeDo/tests/ClaudeDo.Installer.Tests/FakeHttpMessageHandler.cs

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));
}
}