@@ -27,6 +27,8 @@ public void Matches_HttpRequestMessageWithAnyHttpMethod_MatchesAllHttpMethods(st
2727
2828 [ Theory ]
2929 [ InlineData ( "GET" , true ) ]
30+ [ InlineData ( "get" , true ) ]
31+ [ InlineData ( "Get" , true ) ]
3032 [ InlineData ( "POST" , true ) ]
3133 [ InlineData ( "PATCH" , false ) ]
3234 [ InlineData ( "PUT" , false ) ]
@@ -127,4 +129,106 @@ public void Matches_HttpRequestMessageWithNotMatchingBody_DoesNotMatchExactBody(
127129
128130 Assert . False ( sut . Matches ( matchingRequest , defaultOptions ) . Content ) ;
129131 }
132+
133+ [ Fact ]
134+ public void Matches_HttpRequestMessageWithNoHeaders_DoesMatchNoHeaders ( )
135+ {
136+ HttpRequestMessagePattern sut = new ( )
137+ {
138+ Headers = new ( )
139+ } ;
140+
141+ using HttpRequestMessage matchingRequest = new ( ) ;
142+
143+ Assert . True ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
144+ }
145+
146+ [ Fact ]
147+ public void Matches_HttpRequestMessageWithHeaders_DoesNotMatchNoHeaders ( )
148+ {
149+ HttpRequestMessagePattern sut = new ( )
150+ {
151+ Headers = new ( )
152+ } ;
153+
154+ using HttpRequestMessage matchingRequest = new ( ) ;
155+ matchingRequest . Headers . Host = "localhost" ;
156+
157+ Assert . False ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
158+ }
159+
160+ [ Fact ]
161+ public void Matches_HttpRequestMessageWithHeaders_DoesMatchAnyHeaders ( )
162+ {
163+ HttpRequestMessagePattern sut = new ( ) ;
164+
165+ using HttpRequestMessage matchingRequest = new ( ) ;
166+ matchingRequest . Headers . Host = "localhost" ;
167+
168+ Assert . True ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
169+ }
170+
171+ [ Theory ]
172+ [ InlineData ( "Host" ) ]
173+ [ InlineData ( "host" ) ]
174+ [ InlineData ( "HOST" ) ]
175+ public void Matches_HttpRequestMessageWithHeaders_DoesMatchExactHeaders ( string headerName )
176+ {
177+ HttpRequestMessagePattern sut = new ( )
178+ {
179+ Headers = new ( ) { [ Value . Exact ( headerName ) ] = Value . Exact ( "localhost" ) }
180+ } ;
181+
182+ using HttpRequestMessage matchingRequest = new ( ) ;
183+ matchingRequest . Headers . Host = "localhost" ;
184+
185+ Assert . True ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
186+
187+ matchingRequest . Headers . Host = "localhost2" ;
188+ Assert . False ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
189+ }
190+
191+ [ Fact ]
192+ public void Matches_HttpRequestMessageWithHeaders_DoesMatchExactContentHeaders ( )
193+ {
194+ HttpRequestMessagePattern sut = new ( )
195+ {
196+ Headers = new ( ) { [ Value . Exact ( "Content-Disposition" ) ] = Value . Exact ( "inline" ) }
197+ } ;
198+
199+ using HttpRequestMessage matchingRequest = new ( )
200+ {
201+ Content = new StringContent ( "" )
202+ } ;
203+ matchingRequest . Content . Headers . ContentDisposition = new ContentDispositionHeaderValue ( "inline" ) ;
204+
205+ Assert . True ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
206+
207+ matchingRequest . Content . Headers . ContentDisposition = new ContentDispositionHeaderValue ( "attachment" ) ;
208+ Assert . False ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
209+ }
210+
211+ [ Fact ]
212+ public void Matches_HttpRequestMessageWithHeaders_AnyDoesNotOverrideExactHeader ( )
213+ {
214+ HttpRequestMessagePattern sut = new ( )
215+ {
216+ Headers = new ( )
217+ {
218+ [ Value . Any < string > ( ) ] = Value . Any < string > ( ) ,
219+ [ Value . Exact ( "Content-Disposition" ) ] = Value . Exact ( "inline" ) ,
220+ }
221+ } ;
222+
223+ using HttpRequestMessage matchingRequest = new ( )
224+ {
225+ Content = new StringContent ( "" )
226+ } ;
227+ matchingRequest . Content . Headers . ContentDisposition = new ContentDispositionHeaderValue ( "inline" ) ;
228+
229+ Assert . True ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
230+
231+ matchingRequest . Content . Headers . ContentDisposition = new ContentDispositionHeaderValue ( "attachment" ) ;
232+ Assert . False ( sut . Matches ( matchingRequest , defaultOptions ) . Headers ) ;
233+ }
130234}
0 commit comments