| File: Helpers\TestHandlerStub.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Http.Resilience.Tests\Microsoft.Extensions.Http.Resilience.Tests.csproj (Microsoft.Extensions.Http.Resilience.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Net; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Microsoft.Extensions.Http.Resilience.Test.Helpers; public class TestHandlerStub : DelegatingHandler { private readonly Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> _handlerFunc; public TestHandlerStub(HttpStatusCode statusCode) : this((_, _) => Task.FromResult(new HttpResponseMessage(statusCode))) { } public TestHandlerStub(Func<HttpRequestMessage, CancellationToken, Task<HttpResponseMessage>> handlerFunc) { _handlerFunc = handlerFunc; } protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { return _handlerFunc(request, cancellationToken); } #if NET6_0_OR_GREATER protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) { #pragma warning disable VSTHRD002 // Avoid problematic synchronous waits return _handlerFunc(request, cancellationToken).GetAwaiter().GetResult(); #pragma warning restore VSTHRD002 // Avoid problematic synchronous waits } #endif }