diff --git a/src/WireMock.Net.Abstractions/BuilderExtensions/RequestModelBuilder.cs b/src/WireMock.Net.Abstractions/BuilderExtensions/RequestModelBuilder.cs index 9d47ac76..0350782a 100644 --- a/src/WireMock.Net.Abstractions/BuilderExtensions/RequestModelBuilder.cs +++ b/src/WireMock.Net.Abstractions/BuilderExtensions/RequestModelBuilder.cs @@ -138,4 +138,27 @@ public partial class RequestModelBuilder return builder.Build(); }); } + + /// + /// WithHeader: matching based on name, pattern and matchBehaviour. + /// + /// The name. + /// The pattern. + /// The match behaviour. Default value is false. + /// The . + public RequestModelBuilder WithHeader(string name, string pattern, bool rejectOnMatch = false) + { + return WithHeaders(headersBuilder => headersBuilder + .Add(headerBuilder => headerBuilder + .WithName(name) + .WithMatchers(matchersBuilder => matchersBuilder + .Add(matcherBuilder => matcherBuilder + .WithName("WildcardMatcher") + .WithPattern(pattern) + .WithRejectOnMatch(rejectOnMatch) + ) + ) + ) + ); + } } \ No newline at end of file diff --git a/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.GetMappingBuilder_BuildAndPostAsync.verified.txt b/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.GetMappingBuilder_BuildAndPostAsync.verified.txt index 0fd8bce2..f29e6725 100644 --- a/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.GetMappingBuilder_BuildAndPostAsync.verified.txt +++ b/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.GetMappingBuilder_BuildAndPostAsync.verified.txt @@ -15,6 +15,19 @@ Methods: [ POST ], + Headers: [ + { + Name: Authorization, + Matchers: [ + { + Name: WildcardMatcher, + Pattern: *, + IgnoreCase: false, + RejectOnMatch: true + } + ] + } + ], Body: { Matcher: { Name: JsonPartialMatcher, diff --git a/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.cs b/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.cs index 48e354e7..2ca01dd2 100644 --- a/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.cs +++ b/test/WireMock.Net.Tests/Client/Builders/AdminApiMappingBuilderTests.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using FluentAssertions; using VerifyTests; using VerifyXunit; +using WireMock.Admin.Mappings; using WireMock.Client; using WireMock.Client.Extensions; using WireMock.Net.Tests.VerifyExtensions; @@ -41,6 +42,7 @@ public class AdminApiMappingBuilderTests .WithRequest(req => req .UsingPost() .WithPath("/bla1") + .WithHeader("Authorization", "*", true) .WithBody(body => body .WithMatcher(matcher => matcher .WithName("JsonPartialMatcher")