// Copyright © WireMock.Net namespace WireMock.Matchers.Request; /// /// Return the mismatch if the matching score of matchers is not perfect. /// internal sealed class RequestMessageEarlyMatcher( RequestMatcherType? earlyMatcherType, IEnumerable requestMatchers) : IRequestMatcher { /// public RequestMatcherType Type => RequestMatcherType.Composite; /// public double GetMatchingScore(IRequestMessage requestMessage, IRequestMatchResult requestMatchResult) { if (earlyMatcherType is null) { return MatchScores.Perfect; } var earlyMatchers = requestMatchers .Where(m => m.Type == earlyMatcherType) .ToList(); if (earlyMatchers.Count is 0) { return MatchScores.Perfect; } var compositeMatcher = new RequestBuilders.Request(earlyMatchers); return compositeMatcher.GetMatchingScore(requestMessage, requestMatchResult); } }