using System; using System.Linq; using JetBrains.Annotations; using WireMock.Validation; namespace WireMock.Matchers.Request { /// /// The request verb matcher. /// internal class RequestMessageMethodMatcher : IRequestMatcher { private readonly MatchBehaviour _matchBehaviour; /// /// The methods /// public string[] Methods { get; } /// /// Initializes a new instance of the class. /// /// The match behaviour. /// The methods. public RequestMessageMethodMatcher(MatchBehaviour matchBehaviour, [NotNull] params string[] methods) { Check.NotNull(methods, nameof(methods)); _matchBehaviour = matchBehaviour; Methods = methods; } /// public double GetMatchingScore(IRequestMessage requestMessage, RequestMatchResult requestMatchResult) { double score = MatchBehaviourHelper.Convert(_matchBehaviour, IsMatch(requestMessage)); return requestMatchResult.AddScore(GetType(), score); } private double IsMatch(IRequestMessage requestMessage) { return MatchScores.ToScore(Methods.Contains(requestMessage.Method, StringComparer.OrdinalIgnoreCase)); } } }