33 lines
997 B
C#
33 lines
997 B
C#
using System.Net;
|
|
using System.Text;
|
|
|
|
namespace ClawdDotNet.Core.Tests.Deploymentcenter;
|
|
|
|
/// <summary>Fängt die letzte Anfrage ab und antwortet fest, ohne Netzwerkzugriff.</summary>
|
|
internal sealed class CapturingHandler(
|
|
HttpStatusCode status = HttpStatusCode.OK,
|
|
string responseBody = """{"status":"success"}""")
|
|
: HttpMessageHandler
|
|
{
|
|
public HttpRequestMessage? LastRequest { get; private set; }
|
|
|
|
public string? LastBody { get; private set; }
|
|
|
|
public int Calls { get; private set; }
|
|
|
|
protected override async Task<HttpResponseMessage> SendAsync(
|
|
HttpRequestMessage request, CancellationToken cancellationToken)
|
|
{
|
|
Calls++;
|
|
LastRequest = request;
|
|
|
|
if (request.Content is not null)
|
|
LastBody = await request.Content.ReadAsStringAsync(cancellationToken);
|
|
|
|
return new HttpResponseMessage(status)
|
|
{
|
|
Content = new StringContent(responseBody, Encoding.UTF8, "application/json")
|
|
};
|
|
}
|
|
}
|