Files
tgstation-server/tests/Tgstation.Server.Common.Tests/MockHttpMessageHandler.cs
Jordan Dominion 9e8bdde30c Remove HttpClient abstractions
Now implement mocked `HttpMessageHandler`s as recommended: https://stackoverflow.com/a/36427274/3976486
2025-07-27 15:34:33 -04:00

24 lines
755 B
C#

using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace Tgstation.Server.Common.Tests
{
/// <summary>
/// Simple mock <see cref="HttpMessageHandler"/>.
/// </summary>
public sealed class MockHttpMessageHandler : HttpMessageHandler
{
readonly Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> callback;
public MockHttpMessageHandler(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> callback)
{
this.callback = callback ?? throw new ArgumentNullException(nameof(callback));
}
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
=> callback(request, cancellationToken);
}
}