Partial matching

This commit is contained in:
Stef Heyenrath
2017-02-04 17:30:16 +01:00
parent 9b99a7f26b
commit ec2d105db2
19 changed files with 343 additions and 83 deletions

View File

@@ -18,6 +18,8 @@ namespace WireMock.Net.ConsoleApplication
var server = FluentMockServer.StartWithAdminInterface(url1, url2, url3);
Console.WriteLine("FluentMockServer listening at {0}", string.Join(" and ", server.Urls));
server.AllowPartialMapping();
server
.Given(Request.Create().WithPath(p => p.Contains("x")).UsingGet())
.AtPriority(4)
@@ -26,20 +28,6 @@ namespace WireMock.Net.ConsoleApplication
.WithHeader("Content-Type", "application/json")
.WithBody(@"{ ""result"": ""Contains x with FUNC 200""}"));
// http://localhost:8080/gffgfgf/sddsds?start=1000&stop=1&stop=2
server
.Given(Request.Create().WithPath("/*").UsingGet().WithParam("start"))
.WithGuid(Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05"))
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "application/json")
.WithHeader("Transformed-Postman-Token", "token is {{request.headers.Postman-Token}}")
.WithBody(@"{""msg"": ""Hello world, {{request.path}}, bykey={{request.query.start}}, bykey={{request.query.stop}}, byidx0={{request.query.stop.[0]}}, byidx1={{request.query.stop.[1]}}"" }")
.WithTransformer()
.WithDelay(1000)
.WithDelay(TimeSpan.FromMilliseconds(100))
);
server
.Given(Request.Create().WithPath("/data").UsingPost().WithBody(b => b.Contains("e")))
.RespondWith(Response.Create()
@@ -80,6 +68,24 @@ namespace WireMock.Net.ConsoleApplication
.RespondWith(Response.Create().WithDelay(TimeSpan.FromSeconds(1))
.WithStatusCode(200));
server
.Given(Request.Create().WithPath("/partial").UsingGet().WithHeader("p", "p"))
.RespondWith(Response.Create().WithStatusCode(200).WithBody("partial = 200"));
// http://localhost:8080/any/any?start=1000&stop=1&stop=2
server
.Given(Request.Create().WithPath("/*").UsingGet())
.WithGuid(Guid.Parse("90356dba-b36c-469a-a17e-669cd84f1f05"))
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "application/json")
.WithHeader("Transformed-Postman-Token", "token is {{request.headers.Postman-Token}}")
.WithBody(@"{""msg"": ""Hello world CATCH-ALL on /*, {{request.path}}, bykey={{request.query.start}}, bykey={{request.query.stop}}, byidx0={{request.query.stop.[0]}}, byidx1={{request.query.stop.[1]}}"" }")
.WithTransformer()
.WithDelay(1000)
.WithDelay(TimeSpan.FromMilliseconds(100))
);
Console.WriteLine("Press any key to stop the server");
Console.ReadKey();

View File

@@ -30,5 +30,13 @@ namespace WireMock.Admin.Requests
/// The response.
/// </value>
public LogResponseModel Response { get; set; }
/// <summary>
/// Gets or sets the request match result.
/// </summary>
/// <value>
/// The request match result.
/// </value>
public LogRequestMatchModel RequestMatchResult { get; set; }
}
}

View File

@@ -0,0 +1,40 @@
namespace WireMock.Admin.Requests
{
/// <summary>
/// LogRequestMatchModel
/// </summary>
public class LogRequestMatchModel
{
/// <summary>
/// Gets or sets the number of matches.
/// </summary>
/// <value>
/// The number of matches.
/// </value>
public int Matched { get; set; }
/// <summary>
/// Gets or sets the total number of matches.
/// </summary>
/// <value>
/// The total number of matches.
/// </value>
public int Total { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance is perfect match.
/// </summary>
/// <value>
/// <c>true</c> if this instance is perfect match; otherwise, <c>false</c>.
/// </value>
public bool IsPerfectMatch => Matched == Total;
/// <summary>
/// Gets the match percentage.
/// </summary>
/// <value>
/// The match percentage.
/// </value>
public double MatchPercentage => Total == 0 ? 100 : 100.0 * Matched / Total;
}
}

View File

@@ -1,4 +1,5 @@
using System;
using WireMock.Matchers.Request;
namespace WireMock.Logging
{
@@ -30,5 +31,13 @@ namespace WireMock.Logging
/// The response message.
/// </value>
public ResponseMessage ResponseMessage { get; set; }
/// <summary>
/// Gets or sets the request match result.
/// </summary>
/// <value>
/// The request match result.
/// </value>
public RequestMatchResult RequestMatchResult { get; set; }
}
}

View File

@@ -64,12 +64,14 @@ namespace WireMock
/// Determines whether the RequestMessage is handled.
/// </summary>
/// <param name="requestMessage">The request message.</param>
/// <returns>
/// <c>true</c> if RequestMessage is handled; otherwise, <c>false</c>.
/// </returns>
public bool IsRequestHandled(RequestMessage requestMessage)
/// <returns>The <see cref="RequestMatchResult"/>.</returns>
public RequestMatchResult IsRequestHandled(RequestMessage requestMessage)
{
return RequestMatcher.IsMatch(requestMessage);
var result = new RequestMatchResult();
RequestMatcher.IsMatch(requestMessage, result);
return result;
}
}
}

View File

@@ -11,9 +11,10 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
bool IsMatch([NotNull] RequestMessage requestMessage);
bool IsMatch([NotNull] RequestMessage requestMessage, [NotNull] RequestMatchResult requestMatchResult);
}
}

View File

@@ -1,9 +1,11 @@
namespace WireMock.Matchers.Request
using System;
namespace WireMock.Matchers.Request
{
/// <summary>
/// RequestMatchResult
/// </summary>
public class RequestMatchResult
public class RequestMatchResult : IComparable
{
/// <summary>
/// Gets or sets the number of matches.
@@ -27,6 +29,29 @@
/// <value>
/// <c>true</c> if this instance is perfect match; otherwise, <c>false</c>.
/// </value>
public bool IsPerfectMatch { get; set; }
public bool IsPerfectMatch => Matched == Total;
/// <summary>
/// Gets the match percentage.
/// </summary>
/// <value>
/// The match percentage.
/// </value>
public double MatchPercentage => Total == 0 ? 100 : 100.0 * Matched / Total;
/// <summary>
/// Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
/// </summary>
/// <param name="obj">An object to compare with this instance.</param>
/// <returns>
/// A value that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance precedes <paramref name="obj" /> in the sort order. Zero This instance occurs in the same position in the sort order as <paramref name="obj" />. Greater than zero This instance follows <paramref name="obj" /> in the sort order.
/// </returns>
/// <exception cref="System.NotImplementedException"></exception>
public int CompareTo(object obj)
{
var compareObj = (RequestMatchResult)obj;
return compareObj.MatchPercentage.CompareTo(MatchPercentage);
}
}
}

View File

@@ -98,10 +98,22 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Matcher != null)
return Matcher.IsMatch(requestMessage.Body);
@@ -113,10 +125,10 @@ namespace WireMock.Matchers.Request
return requestMessage.BodyAsBytes == _bodyData;
if (Func != null)
return Func(requestMessage.Body);
return requestMessage.Body != null && Func(requestMessage.Body);
if (DataFunc != null)
return DataFunc(requestMessage.BodyAsBytes);
if (DataFunc != null && requestMessage.BodyAsBytes != null)
return requestMessage.BodyAsBytes != null && DataFunc(requestMessage.BodyAsBytes);
return false;
}

View File

@@ -37,14 +37,32 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public virtual bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
return _type == CompositeMatcherType.And ?
RequestMatchers.All(matcher => matcher.IsMatch(requestMessage)) :
RequestMatchers.Any(matcher => matcher.IsMatch(requestMessage));
var list = new List<bool>();
if (_type == CompositeMatcherType.And)
{
foreach (var requestMatcher in RequestMatchers)
{
bool isMatch = requestMatcher.IsMatch(requestMessage, requestMatchResult);
list.Add(isMatch);
}
return list.All(match => match);
}
//var orRequestMatchResult = new RequestMatchResult();
foreach (var requestMatcher in RequestMatchers)
{
bool isMatch = requestMatcher.IsMatch(requestMessage, requestMatchResult);
list.Add(isMatch);
}
return list.Any(match => match);
}
}
}

View File

@@ -25,7 +25,7 @@ namespace WireMock.Matchers.Request
/// The matchers.
/// </value>
public IMatcher[] Matchers { get; }
/// <summary>
/// Initializes a new instance of the <see cref="RequestMessageCookieMatcher"/> class.
/// </summary>
@@ -70,17 +70,32 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Funcs != null)
return Funcs.Any(cf => cf(requestMessage.Cookies));
return requestMessage.Cookies != null && Funcs.Any(cf => cf(requestMessage.Cookies));
if (requestMessage.Cookies == null)
return false;
if (!requestMessage.Cookies.ContainsKey(Name))
return false;
string headerValue = requestMessage.Cookies[Name];
return Matchers.Any(m => m.IsMatch(headerValue));
}

View File

@@ -70,17 +70,32 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Funcs != null)
return Funcs.Any(hf => hf(requestMessage.Headers));
return requestMessage.Headers != null && Funcs.Any(hf => hf(requestMessage.Headers));
if (requestMessage.Headers == null)
return false;
if (!requestMessage.Headers.ContainsKey(Name))
return false;
string headerValue = requestMessage.Headers[Name];
return Matchers.Any(m => m.IsMatch(headerValue));
}

View File

@@ -30,10 +30,22 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
return Methods.Contains(requestMessage.Method);
}

View File

@@ -59,13 +59,25 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Funcs != null)
return Funcs.Any(f => f(requestMessage.Query));
return requestMessage.Query != null && Funcs.Any(f => f(requestMessage.Query));
var values = requestMessage.GetParameter(Key);
return values?.Intersect(Values).Count() == Values.Count();

View File

@@ -53,16 +53,28 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Matchers != null)
return Matchers.Any(matcher => matcher.IsMatch(requestMessage.Path));
if (Funcs != null)
return Funcs.Any(func => func(requestMessage.Path));
return requestMessage.Path != null && Funcs.Any(func => func(requestMessage.Path));
return false;
}

View File

@@ -53,16 +53,28 @@ namespace WireMock.Matchers.Request
/// Determines whether the specified RequestMessage is match.
/// </summary>
/// <param name="requestMessage">The RequestMessage.</param>
/// <param name="requestMatchResult">The RequestMatchResult.</param>
/// <returns>
/// <c>true</c> if the specified RequestMessage is match; otherwise, <c>false</c>.
/// </returns>
public bool IsMatch(RequestMessage requestMessage)
public bool IsMatch(RequestMessage requestMessage, RequestMatchResult requestMatchResult)
{
bool isMatch = IsMatch(requestMessage);
if (isMatch)
requestMatchResult.Matched++;
requestMatchResult.Total++;
return isMatch;
}
private bool IsMatch(RequestMessage requestMessage)
{
if (Matchers != null)
return Matchers.Any(matcher => matcher.IsMatch(requestMessage.Url));
if (Funcs != null)
return Funcs.Any(func => func(requestMessage.Url));
return requestMessage.Url != null && Funcs.Any(func => func(requestMessage.Url));
return false;
}

View File

@@ -202,6 +202,11 @@ namespace WireMock.Server
Body = logEntry.ResponseMessage.Body,
BodyOriginal = logEntry.ResponseMessage.BodyOriginal,
Headers = logEntry.ResponseMessage.Headers
},
RequestMatchResult = new LogRequestMatchModel
{
Matched = logEntry.RequestMatchResult.Matched,
Total = logEntry.RequestMatchResult.Total
}
};
}

View File

@@ -245,7 +245,8 @@ namespace WireMock.Server
{
lock (((ICollection)_logEntries).SyncRoot)
{
return _logEntries.Where(log => matcher.IsMatch(log.RequestMessage));
var requestMatchResult = new RequestMatchResult();
return _logEntries.Where(log => matcher.IsMatch(log.RequestMessage, requestMatchResult));
}
}
@@ -330,12 +331,34 @@ namespace WireMock.Server
var request = _requestMapper.Map(ctx.Request);
ResponseMessage response = null;
RequestMatchResult requestMatchResult = null;
try
{
var targetMapping = _mappings
.OrderBy(m => m.Priority)
.FirstOrDefault(m => m.IsRequestHandled(request));
var possibleMatchingMappings = _mappings
.Select(m => new { Mapping = m, MatchResult = m.IsRequestHandled(request) })
.ToList();
Mapping targetMapping;
if (_allowPartialMapping)
{
var orderedMappings = possibleMatchingMappings
.OrderBy(m => m.Mapping.Priority)
.ThenBy(m => m.MatchResult)
.ToList();
var bestPartialMatch = orderedMappings.FirstOrDefault();
targetMapping = bestPartialMatch?.Mapping;
requestMatchResult = bestPartialMatch?.MatchResult;
}
else
{
var perfectMatch = possibleMatchingMappings
.OrderBy(m => m.Mapping.Priority)
.FirstOrDefault(m => m.MatchResult.IsPerfectMatch);
targetMapping = perfectMatch?.Mapping;
requestMatchResult = perfectMatch?.MatchResult;
}
if (targetMapping == null)
{
@@ -364,7 +387,8 @@ namespace WireMock.Server
{
Guid = Guid.NewGuid(),
RequestMessage = request,
ResponseMessage = response
ResponseMessage = response,
RequestMatchResult = requestMatchResult
};
LogRequest(log);

View File

@@ -183,14 +183,14 @@ namespace WireMock.Net.Tests
// when
await new HttpClient().GetAsync("http://localhost:" + _server.Ports[0] + "/foo");
_server.Reset();
_server.ResetLogEntries();
// then
Check.That(_server.LogEntries).IsEmpty();
}
[Test]
public void Should_reset_routes()
public void Should_reset_mappings()
{
// given
_server = FluentMockServer.Start();
@@ -203,9 +203,10 @@ namespace WireMock.Net.Tests
.WithBody(@"{ msg: ""Hello world!""}"));
// when
_server.Reset();
_server.ResetMappings();
// then
Check.That(_server.Mappings).IsEmpty();
Check.ThatAsyncCode(() => new HttpClient().GetStringAsync("http://localhost:" + _server.Ports[0] + "/foo"))
.ThrowsAny();
}

View File

@@ -5,6 +5,7 @@ using NFluent;
using NUnit.Framework;
using WireMock.RequestBuilders;
using WireMock.Matchers;
using WireMock.Matchers.Request;
namespace WireMock.Net.Tests
{
@@ -21,7 +22,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "blabla");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -32,8 +34,9 @@ namespace WireMock.Net.Tests
var request1 = new RequestMessage(new Uri("http://localhost/x1"), "blabla");
var request2 = new RequestMessage(new Uri("http://localhost/x2"), "blabla");
Check.That(requestBuilder.IsMatch(request1)).IsTrue();
Check.That(requestBuilder.IsMatch(request2)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(requestBuilder.IsMatch(request1, requestMatchResult)).IsTrue();
Check.That(requestBuilder.IsMatch(request2, requestMatchResult)).IsTrue();
}
[Test]
@@ -46,7 +49,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "blabla");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -59,7 +63,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo/bar"), "blabla");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -72,7 +77,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/bar"), "blabla");
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -85,7 +91,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "blabla");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -98,7 +105,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -111,7 +119,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "POST");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -124,7 +133,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "GET");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -139,7 +149,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "Delete", body, bodyAsString);
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -152,7 +163,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "HEAD");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -165,7 +177,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "HEAD");
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -178,7 +191,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -193,7 +207,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "tata" } });
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -208,7 +223,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "tata" } });
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -223,7 +239,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "ABC" } });
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -238,7 +255,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "TaTa" } });
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -251,7 +269,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", null, null, null, new Dictionary<string, string> { { "session", "abc" } });
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -266,7 +285,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString);
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -281,7 +301,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "tatata" } });
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -296,7 +317,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString);
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -316,7 +338,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, xmlBodyAsString);
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -336,7 +359,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, xmlBodyAsString);
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -351,7 +375,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString);
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -366,7 +391,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString);
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -381,7 +407,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo"), "PUT", body, bodyAsString, new Dictionary<string, string> { { "X-toto", "tatata" } });
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
[Test]
@@ -394,7 +421,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo?bar=1&bar=2"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -407,7 +435,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo?bar"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -420,7 +449,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/foo?bar=1&bar=2"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsTrue();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsTrue();
}
[Test]
@@ -433,7 +463,8 @@ namespace WireMock.Net.Tests
var request = new RequestMessage(new Uri("http://localhost/test=7"), "PUT");
// then
Check.That(spec.IsMatch(request)).IsFalse();
var requestMatchResult = new RequestMatchResult();
Check.That(spec.IsMatch(request, requestMatchResult)).IsFalse();
}
}
}