Fix partialMappings

This commit is contained in:
Stef Heyenrath
2017-02-06 07:47:34 +01:00
parent 8ecf7e414a
commit 3ba29e580c
2 changed files with 7 additions and 4 deletions

View File

@@ -335,13 +335,13 @@ namespace WireMock.Server
RequestMatchResult requestMatchResult = null;
try
{
var possibleMatchingMappings = _mappings
var mappings = _mappings
.Select(m => new { Mapping = m, MatchResult = m.IsRequestHandled(request) })
.ToList();
if (_allowPartialMapping)
{
var orderedMappings = possibleMatchingMappings
var partialMappings = mappings
.Where(pm =>
(pm.Mapping.Provider is DynamicResponseProvider && pm.MatchResult.IsPerfectMatch) ||
!(pm.Mapping.Provider is DynamicResponseProvider)
@@ -350,14 +350,14 @@ namespace WireMock.Server
.ThenBy(m => m.Mapping.Priority)
.ToList();
var bestPartialMatch = orderedMappings.FirstOrDefault();
var bestPartialMatch = partialMappings.FirstOrDefault(pm => pm.MatchResult.MatchPercentage > 0.0);
targetMapping = bestPartialMatch?.Mapping;
requestMatchResult = bestPartialMatch?.MatchResult;
}
else
{
var perfectMatch = possibleMatchingMappings
var perfectMatch = mappings
.OrderBy(m => m.Mapping.Priority)
.FirstOrDefault(m => m.MatchResult.IsPerfectMatch);