mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-23 01:08:49 +02:00
IHeadersAndCookiesRequestBuilder
This commit is contained in:
@@ -25,7 +25,7 @@ namespace WireMock.Matchers.Request
|
|||||||
/// Initializes a new instance of the <see cref="RequestMessageClientIPMatcher"/> class.
|
/// Initializes a new instance of the <see cref="RequestMessageClientIPMatcher"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="clientIPs">The clientIPs.</param>
|
/// <param name="clientIPs">The clientIPs.</param>
|
||||||
public RequestMessageClientIPMatcher([NotNull] params string[] clientIPs) : this(clientIPs.Select(ip => new WildcardMatcher(ip)).ToArray())
|
public RequestMessageClientIPMatcher([NotNull] params string[] clientIPs) : this(clientIPs.Select(ip => new WildcardMatcher(ip)).Cast<IMatcher>().ToArray())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,14 +49,7 @@ namespace WireMock.Matchers.Request
|
|||||||
Funcs = funcs;
|
Funcs = funcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <inheritdoc cref="IRequestMatcher.GetMatchingScore"/>
|
||||||
/// Determines whether the specified RequestMessage is match.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="requestMessage">The RequestMessage.</param>
|
|
||||||
/// <param name="requestMatchResult">The RequestMatchResult.</param>
|
|
||||||
/// <returns>
|
|
||||||
/// A value between 0.0 - 1.0 of the similarity.
|
|
||||||
/// </returns>
|
|
||||||
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
||||||
{
|
{
|
||||||
double score = IsMatch(requestMessage);
|
double score = IsMatch(requestMessage);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ namespace WireMock.Matchers.Request
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The request header matcher.
|
/// The request header matcher.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <inheritdoc cref="IRequestMatcher"/>
|
||||||
public class RequestMessageHeaderMatcher : IRequestMatcher
|
public class RequestMessageHeaderMatcher : IRequestMatcher
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -32,7 +33,7 @@ namespace WireMock.Matchers.Request
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">The name.</param>
|
/// <param name="name">The name.</param>
|
||||||
/// <param name="pattern">The pattern.</param>
|
/// <param name="pattern">The pattern.</param>
|
||||||
/// <param name="ignoreCase">The ignoreCase.</param>
|
/// <param name="ignoreCase">if set to <c>true</c> [ignore case].</param>
|
||||||
public RequestMessageHeaderMatcher([NotNull] string name, [NotNull] string pattern, bool ignoreCase = true)
|
public RequestMessageHeaderMatcher([NotNull] string name, [NotNull] string pattern, bool ignoreCase = true)
|
||||||
{
|
{
|
||||||
Check.NotNull(name, nameof(name));
|
Check.NotNull(name, nameof(name));
|
||||||
@@ -42,6 +43,21 @@ namespace WireMock.Matchers.Request
|
|||||||
Matchers = new IMatcher[] { new WildcardMatcher(pattern, ignoreCase) };
|
Matchers = new IMatcher[] { new WildcardMatcher(pattern, ignoreCase) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="RequestMessageHeaderMatcher"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name">The name.</param>
|
||||||
|
/// <param name="patterns">The patterns.</param>
|
||||||
|
/// <param name="ignoreCase">if set to <c>true</c> [ignore case].</param>
|
||||||
|
public RequestMessageHeaderMatcher([NotNull] string name, [NotNull] string[] patterns, bool ignoreCase = true)
|
||||||
|
{
|
||||||
|
Check.NotNull(name, nameof(name));
|
||||||
|
Check.NotNull(patterns, nameof(patterns));
|
||||||
|
|
||||||
|
Name = name;
|
||||||
|
Matchers = patterns.Select(pattern => new WildcardMatcher(pattern, ignoreCase)).Cast<IMatcher>().ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="RequestMessageHeaderMatcher"/> class.
|
/// Initializes a new instance of the <see cref="RequestMessageHeaderMatcher"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -67,14 +83,7 @@ namespace WireMock.Matchers.Request
|
|||||||
Funcs = funcs;
|
Funcs = funcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <inheritdoc cref="IRequestMatcher.GetMatchingScore"/>
|
||||||
/// Determines whether the specified RequestMessage is match.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="requestMessage">The RequestMessage.</param>
|
|
||||||
/// <param name="requestMatchResult">The RequestMatchResult.</param>
|
|
||||||
/// <returns>
|
|
||||||
/// A value between 0.0 - 1.0 of the similarity.
|
|
||||||
/// </returns>
|
|
||||||
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
||||||
{
|
{
|
||||||
double score = IsMatch(requestMessage);
|
double score = IsMatch(requestMessage);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace WireMock.Matchers.Request
|
|||||||
/// Initializes a new instance of the <see cref="RequestMessagePathMatcher"/> class.
|
/// Initializes a new instance of the <see cref="RequestMessagePathMatcher"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="paths">The paths.</param>
|
/// <param name="paths">The paths.</param>
|
||||||
public RequestMessagePathMatcher([NotNull] params string[] paths) : this(paths.Select(path => new WildcardMatcher(path)).ToArray())
|
public RequestMessagePathMatcher([NotNull] params string[] paths) : this(paths.Select(path => new WildcardMatcher(path)).Cast<IMatcher>().ToArray())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,14 +49,7 @@ namespace WireMock.Matchers.Request
|
|||||||
Funcs = funcs;
|
Funcs = funcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <inheritdoc cref="IRequestMatcher.GetMatchingScore"/>
|
||||||
/// Determines whether the specified RequestMessage is match.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="requestMessage">The RequestMessage.</param>
|
|
||||||
/// <param name="requestMatchResult">The RequestMatchResult.</param>
|
|
||||||
/// <returns>
|
|
||||||
/// A value between 0.0 - 1.0 of the similarity.
|
|
||||||
/// </returns>
|
|
||||||
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
||||||
{
|
{
|
||||||
double score = IsMatch(requestMessage);
|
double score = IsMatch(requestMessage);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ namespace WireMock.Matchers.Request
|
|||||||
/// Initializes a new instance of the <see cref="RequestMessageUrlMatcher"/> class.
|
/// Initializes a new instance of the <see cref="RequestMessageUrlMatcher"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="urls">The urls.</param>
|
/// <param name="urls">The urls.</param>
|
||||||
public RequestMessageUrlMatcher([NotNull] params string[] urls) : this(urls.Select(url => new WildcardMatcher(url)).ToArray())
|
public RequestMessageUrlMatcher([NotNull] params string[] urls) : this(urls.Select(url => new WildcardMatcher(url)).Cast<IMatcher>().ToArray())
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,14 +49,7 @@ namespace WireMock.Matchers.Request
|
|||||||
Funcs = funcs;
|
Funcs = funcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <inheritdoc cref="IRequestMatcher.GetMatchingScore"/>
|
||||||
/// Determines whether the specified RequestMessage is match.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="requestMessage">The RequestMessage.</param>
|
|
||||||
/// <param name="requestMatchResult">The RequestMatchResult.</param>
|
|
||||||
/// <returns>
|
|
||||||
/// A value between 0.0 - 1.0 of the similarity.
|
|
||||||
/// </returns>
|
|
||||||
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
public double GetMatchingScore(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
|
||||||
{
|
{
|
||||||
double score = IsMatch(requestMessage);
|
double score = IsMatch(requestMessage);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace WireMock.RequestBuilders
|
|||||||
public interface IHeadersAndCookiesRequestBuilder : IBodyRequestBuilder, IRequestMatcher, IParamsRequestBuilder
|
public interface IHeadersAndCookiesRequestBuilder : IBodyRequestBuilder, IRequestMatcher, IParamsRequestBuilder
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The with header.
|
/// Add Header matching based on name, pattern and ignoreCase.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">The name.</param>
|
/// <param name="name">The name.</param>
|
||||||
/// <param name="pattern">The pattern.</param>
|
/// <param name="pattern">The pattern.</param>
|
||||||
@@ -20,6 +20,15 @@ namespace WireMock.RequestBuilders
|
|||||||
/// <returns>The <see cref="IRequestBuilder"/>.</returns>
|
/// <returns>The <see cref="IRequestBuilder"/>.</returns>
|
||||||
IRequestBuilder WithHeader([NotNull] string name, string pattern, bool ignoreCase = true);
|
IRequestBuilder WithHeader([NotNull] string name, string pattern, bool ignoreCase = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Add Header matching based on name, patterns and ignoreCase.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name">The name.</param>
|
||||||
|
/// <param name="patterns">The patterns.</param>
|
||||||
|
/// <param name="ignoreCase">ignore Case</param>
|
||||||
|
/// <returns>The <see cref="IRequestBuilder"/>.</returns>
|
||||||
|
IRequestBuilder WithHeader([NotNull] string name, string[] patterns, bool ignoreCase = true);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The with header.
|
/// The with header.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -359,13 +359,7 @@ namespace WireMock.RequestBuilders
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <inheritdoc cref="IHeadersAndCookiesRequestBuilder.WithHeader(string,string,bool)"/>
|
||||||
/// With header.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="name">The name.</param>
|
|
||||||
/// <param name="pattern">The pattern.</param>
|
|
||||||
/// <param name="ignoreCase">if set to <c>true</c> [ignore case].</param>
|
|
||||||
/// <returns>The <see cref="IRequestBuilder"/>.</returns>
|
|
||||||
public IRequestBuilder WithHeader(string name, string pattern, bool ignoreCase = true)
|
public IRequestBuilder WithHeader(string name, string pattern, bool ignoreCase = true)
|
||||||
{
|
{
|
||||||
Check.NotNull(name, nameof(name));
|
Check.NotNull(name, nameof(name));
|
||||||
@@ -375,6 +369,16 @@ namespace WireMock.RequestBuilders
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc cref="IHeadersAndCookiesRequestBuilder.WithHeader(string,string[],bool)"/>
|
||||||
|
public IRequestBuilder WithHeader(string name, string[] patterns, bool ignoreCase = true)
|
||||||
|
{
|
||||||
|
Check.NotNull(name, nameof(name));
|
||||||
|
Check.NotNull(patterns, nameof(patterns));
|
||||||
|
|
||||||
|
_requestMatchers.Add(new RequestMessageHeaderMatcher(name, patterns, ignoreCase));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// With header.
|
/// With header.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -167,8 +167,8 @@ namespace WireMock.Server
|
|||||||
request.UsingVerb(requestMessage.Method);
|
request.UsingVerb(requestMessage.Method);
|
||||||
|
|
||||||
requestMessage.Query.Loop((key, value) => request.WithParam(key, value.ToArray()));
|
requestMessage.Query.Loop((key, value) => request.WithParam(key, value.ToArray()));
|
||||||
requestMessage.Headers.Loop((key, value) => request.WithHeader(key, new ExactMatcher(value.ToArray())));
|
requestMessage.Headers.Loop((key, value) => request.WithHeader(key, value.ToArray()));
|
||||||
requestMessage.Cookies.Loop((key, value) => request.WithCookie(key, new ExactMatcher(value)));
|
requestMessage.Cookies.Loop((key, value) => request.WithCookie(key, value));
|
||||||
|
|
||||||
if (requestMessage.Body != null)
|
if (requestMessage.Body != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,8 +74,7 @@ namespace WireMock.Util
|
|||||||
|
|
||||||
public void RemoveLock(string name)
|
public void RemoveLock(string name)
|
||||||
{
|
{
|
||||||
ReaderWriterLockSlim o;
|
_lockDict.TryRemove(name, out _);
|
||||||
_lockDict.TryRemove(name, out o);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user