mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-01-16 16:36:46 +01:00
62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using JetBrains.Annotations;
|
|
using WireMock.Validation;
|
|
using WireMock.Settings;
|
|
|
|
namespace WireMock
|
|
{
|
|
internal class DynamicResponseProvider : IResponseProvider
|
|
{
|
|
private readonly Func<RequestMessage, ResponseMessage> _responseMessageFunc;
|
|
|
|
public DynamicResponseProvider([NotNull] Func<RequestMessage, ResponseMessage> responseMessageFunc)
|
|
{
|
|
Check.NotNull(responseMessageFunc, nameof(responseMessageFunc));
|
|
|
|
_responseMessageFunc = responseMessageFunc;
|
|
}
|
|
|
|
public Task<ResponseMessage> ProvideResponseAsync(RequestMessage requestMessage)
|
|
{
|
|
return Task.FromResult(_responseMessageFunc(requestMessage));
|
|
}
|
|
}
|
|
|
|
internal class DynamicAsyncResponseProvider : IResponseProvider
|
|
{
|
|
private readonly Func<RequestMessage, Task<ResponseMessage>> _responseMessageFunc;
|
|
|
|
public DynamicAsyncResponseProvider([NotNull] Func<RequestMessage, Task<ResponseMessage>> responseMessageFunc)
|
|
{
|
|
Check.NotNull(responseMessageFunc, nameof(responseMessageFunc));
|
|
|
|
_responseMessageFunc = responseMessageFunc;
|
|
}
|
|
|
|
public Task<ResponseMessage> ProvideResponseAsync(RequestMessage requestMessage)
|
|
{
|
|
return _responseMessageFunc(requestMessage);
|
|
}
|
|
}
|
|
|
|
internal class ProxyAsyncResponseProvider : IResponseProvider
|
|
{
|
|
private readonly Func<RequestMessage, IProxyAndRecordSettings, Task<ResponseMessage>> _responseMessageFunc;
|
|
private readonly IProxyAndRecordSettings _settings;
|
|
|
|
public ProxyAsyncResponseProvider([NotNull] Func<RequestMessage, IProxyAndRecordSettings, Task<ResponseMessage>> responseMessageFunc, [NotNull] IProxyAndRecordSettings settings)
|
|
{
|
|
Check.NotNull(responseMessageFunc, nameof(responseMessageFunc));
|
|
Check.NotNull(settings, nameof(settings));
|
|
|
|
_responseMessageFunc = responseMessageFunc;
|
|
_settings = settings;
|
|
}
|
|
|
|
public Task<ResponseMessage> ProvideResponseAsync(RequestMessage requestMessage)
|
|
{
|
|
return _responseMessageFunc(requestMessage, _settings);
|
|
}
|
|
}
|
|
} |