using System;
using System.Threading.Tasks;
using WireMock.Matchers.Request;
namespace WireMock
{
///
/// The Mapping.
///
public class Mapping
{
///
/// Gets the unique identifier.
///
///
/// The unique identifier.
///
public Guid Guid { get; }
///
/// The Request matcher.
///
public IRequestMatcher RequestMatcher { get; }
///
/// The Provider.
///
public IResponseProvider Provider { get; }
///
/// Initializes a new instance of the class.
///
/// The the unique identifier.
/// The request matcher.
/// The provider.
public Mapping(Guid guid, IRequestMatcher requestMatcher, IResponseProvider provider)
{
Guid = guid;
RequestMatcher = requestMatcher;
Provider = provider;
}
///
/// The response to.
///
/// The request message.
/// The .
public async Task ResponseTo(RequestMessage requestMessage)
{
return await Provider.ProvideResponse(requestMessage);
}
///
/// Determines whether the RequestMessage is handled.
///
/// The request message.
///
/// true if RequestMessage is handled; otherwise, false.
///
public bool IsRequestHandled(RequestMessage requestMessage)
{
return RequestMatcher.IsMatch(requestMessage);
}
}
}