feat: add parameter for HttpRequestMessage#461
Conversation
There was a problem hiding this comment.
Pull request overview
Adds support for matching HttpRequestMessage parameters in Mockolate’s web helpers, and wires up HttpClient mocking to allow SendAsync setups using the new request matcher.
Changes:
- Introduced
It.IsHttpRequestMessage(HttpMethod? method = null)fluent parameter with URI/content/header sub-matchers. - Added
HttpClientExtensions.SendAsync(IParameter<HttpRequestMessage>)setup helper targetingHttpMessageHandler.SendAsync. - Added/updated unit tests and API snapshot expectations for the new API surface.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.cs | Adds method-matching tests for IsHttpRequestMessage(method) |
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.WithHeadersTests.cs | Adds header matching tests for request/content/default headers |
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.WhoseUriIsTests.cs | Adds URI matching tests for request matcher |
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.WhoseStringContentIsTests.cs | Adds string-body/media-type matching tests for request content |
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.WhoseContentIsTests.cs | Adds content media-type matching coverage |
| Tests/Mockolate.Tests/Web/ItExtensionsTests.IsHttpRequestMessageTests.WhoseBinaryContentIsTests.cs | Adds binary/body/media-type matching coverage |
| Tests/Mockolate.Api.Tests/Expected/Mockolate_netstandard2.0.txt | Updates API snapshot for new request matcher + SendAsync overload |
| Tests/Mockolate.Api.Tests/Expected/Mockolate_net8.0.txt | Updates API snapshot for new request matcher + SendAsync overload |
| Tests/Mockolate.Api.Tests/Expected/Mockolate_net10.0.txt | Updates API snapshot for new request matcher + SendAsync overload |
| Source/Mockolate/Web/ItExtensions.cs | Adjusts header matcher API and header matching to include alternative headers |
| Source/Mockolate/Web/ItExtensions.HttpRequestMessage.cs | Adds request matcher parameter + fluent configuration |
| Source/Mockolate/Web/ItExtensions.HttpContent.cs | Adjusts header matcher API for content parameters |
| Source/Mockolate/Web/HttpClientExtensions.cs | Adds SendAsync(IParameter<HttpRequestMessage>) setup path via mocked handler |
🚀 Benchmark ResultsDetails
|
|
|
This is addressed in release v1.3.0. |



This PR adds support for matching
HttpRequestMessageparameters in Mockolate’s web helpers, and wires up HttpClient mocking to allowSendAsyncsetups using the new request matcher.Key Changes:
It.IsHttpRequestMessage(HttpMethod? method = null)fluent parameter with URI/content/header sub-matchers.HttpClientExtensions.SendAsync(IParameter<HttpRequestMessage>)setup helper targetingHttpMessageHandler.SendAsync.WithHeaderstoHttpRequestMessageparameter #458