// Copyright © WireMock.Net
using WireMock.Matchers;
using WireMock.Net.Extensions.Routing.Delegates;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;
namespace WireMock.Net.Extensions.Routing.Extensions;
///
/// Provides extension methods for mapping HTTP requests to handlers in .
///
public static class WireMockServerExtensions
{
///
/// Maps a request to a WireMock.Net server using the specified method, path matcher, and request handler.
///
/// The WireMock.Net server to extend.
/// The HTTP method to match.
/// The matcher for the request path.
/// The handler to process the request.
/// The current instance.
public static WireMockServer Map(
this WireMockServer source,
string method,
IStringMatcher pathMatcher,
WireMockHttpRequestHandler httpRequestHandler)
{
source
.Given(Request.Create().WithPath(pathMatcher).UsingMethod(method))
.RespondWith(Response.Create().WithCallback(req => httpRequestHandler(req)));
return source;
}
}