using System.Net; using System.Net.Http.Headers; namespace GameList.Tests.Support; internal class StubHttpMessageHandler : HttpMessageHandler { private Func _responder; public StubHttpMessageHandler() { _responder = DefaultResponder; } public void SetResponder(Func responder) { _responder = responder ?? DefaultResponder; } private static HttpResponseMessage DefaultResponder(HttpRequestMessage _) { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(Array.Empty()) }; response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png"); response.Content.Headers.ContentLength = 0; return response; } protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { return Task.FromResult(_responder(request)); } }