// This source file is based on mock4net by Alexandre Victoor which is licensed under the Apache 2.0 License. // For more details see 'mock4net/LICENSE.txt' and 'mock4net/readme.md' in this project root. using System; using System.Collections.Generic; using WireMock.Matchers; using WireMock.Matchers.Request; using WireMock.Types; using Stef.Validation; namespace WireMock.RequestBuilders; public partial class Request { /// public IRequestBuilder WithParam(string key, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch) { return WithParam(key, false, matchBehaviour); } /// public IRequestBuilder WithParam(string key, bool ignoreCase, MatchBehaviour matchBehaviour = MatchBehaviour.AcceptOnMatch) { Guard.NotNull(key); _requestMatchers.Add(new RequestMessageParamMatcher(matchBehaviour, key, ignoreCase)); return this; } /// public IRequestBuilder WithParam(string key, params string[] values) { return WithParam(key, MatchBehaviour.AcceptOnMatch, false, values); } /// public IRequestBuilder WithParam(string key, bool ignoreCase, params string[] values) { return WithParam(key, MatchBehaviour.AcceptOnMatch, ignoreCase, values); } /// public IRequestBuilder WithParam(string key, params IStringMatcher[] matchers) { return WithParam(key, MatchBehaviour.AcceptOnMatch, false, matchers); } /// public IRequestBuilder WithParam(string key, bool ignoreCase, params IStringMatcher[] matchers) { return WithParam(key, MatchBehaviour.AcceptOnMatch, ignoreCase, matchers); } /// public IRequestBuilder WithParam(string key, MatchBehaviour matchBehaviour, params string[] values) { return WithParam(key, matchBehaviour, false, values); } /// public IRequestBuilder WithParam(string key, MatchBehaviour matchBehaviour, bool ignoreCase = false, params string[] values) { Guard.NotNull(key); _requestMatchers.Add(new RequestMessageParamMatcher(matchBehaviour, key, ignoreCase, values)); return this; } /// public IRequestBuilder WithParam(string key, MatchBehaviour matchBehaviour, params IStringMatcher[] matchers) { return WithParam(key, matchBehaviour, false, matchers); } /// public IRequestBuilder WithParam(string key, MatchBehaviour matchBehaviour, bool ignoreCase, params IStringMatcher[] matchers) { Guard.NotNull(key); _requestMatchers.Add(new RequestMessageParamMatcher(matchBehaviour, key, ignoreCase, matchers)); return this; } /// public IRequestBuilder WithParam(params Func>, bool>[] funcs) { Guard.NotNullOrEmpty(funcs, nameof(funcs)); _requestMatchers.Add(new RequestMessageParamMatcher(funcs)); return this; } }