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; }
}
}