using System.Net; namespace Elsa.Activities.UnitTests.Http.Helpers; /// /// Shared helper methods for testing SendHttpRequest and FlowSendHttpRequest activities. /// public static class SendHttpRequestTestHelpers { /// /// Creates a response handler that returns a specific HTTP status code and optional content. /// public static Func> CreateResponseHandler( HttpStatusCode statusCode, string? content = null, RequestCapture? requestCapture = null, Dictionary? additionalHeaders = null) { return (request, _) => { if (requestCapture != null) requestCapture.CapturedRequest = request; return Task.FromResult(ActivityTestFixtureHttpExtensions.CreateHttpResponse(statusCode, content, additionalHeaders)); }; } /// /// Creates an exception handler that throws a specific exception type with a message. /// public static Func> CreateExceptionHandler(string message) where TException : Exception { return (_, _) => throw ((TException)Activator.CreateInstance(typeof(TException), message)!); } /// /// Captures HTTP request details during test execution. /// public sealed class RequestCapture { public HttpRequestMessage? CapturedRequest { get; set; } } }