Feature: add URL assertion excluding query parameters #639

Closed
opened 2025-12-29 15:29:31 +01:00 by adam · 5 comments
Owner

Originally created by @asos-jamiestollery on GitHub (Oct 9, 2024).

Originally assigned to: @StefH on GitHub.

Is your feature request related to a problem? Please describe.
There is no way to assert that a WireMockServer has been called at a URL excluding query parameters.

Given my WireMockServer has been called at https://localhost:8080/api/endpoint/?param1=1&param2=2
I would like to be able to do the following assertion wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/");
However, this will fail as the URL does not contain the query parameters.

Describe the solution you'd like
I propose that an optional System.UriPartial parameter is added to the WireMockAssertions.AtUrl method so I could assert like so
wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/", UriPartial.Path);

This param could then be used by the method to only check the specified part of the URL like so Uri.GetLeftPart(UriPartial.Path);

Describe alternatives you've considered
Alternatively a new WireMockAssertions.AtPath method could be created that checks the mock has been called at a URL excluding the query params.

Additional context
I would like to implement this change myself if it is accepted as a feature

Originally created by @asos-jamiestollery on GitHub (Oct 9, 2024). Originally assigned to: @StefH on GitHub. **Is your feature request related to a problem? Please describe.** There is no way to assert that a `WireMockServer` has been called at a URL **excluding query parameters**. Given my `WireMockServer` has been called at `https://localhost:8080/api/endpoint/?param1=1&param2=2` I would like to be able to do the following assertion `wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/");` However, this will fail as the URL does not contain the query parameters. **Describe the solution you'd like** I propose that an optional `System.UriPartial` parameter is added to the `WireMockAssertions.AtUrl` method so I could assert like so `wireMockServer.Should().HaveReceivedACall().AtUrl("https://localhost:8080/api/endpoint/", UriPartial.Path);` This param could then be used by the method to only check the specified part of the URL like so `Uri.GetLeftPart(UriPartial.Path);` **Describe alternatives you've considered** Alternatively a new `WireMockAssertions.AtPath` method could be created that checks the mock has been called at a URL excluding the query params. **Additional context** I would like to implement this change myself if it is accepted as a feature
adam added the feature label 2025-12-29 15:29:31 +01:00
adam closed this issue 2025-12-29 15:29:31 +01:00
Author
Owner

@StefH commented on GitHub (Oct 9, 2024):

Maybe adding an overload which accepts a WildcardMatcher could also solve your issue?

@StefH commented on GitHub (Oct 9, 2024): Maybe adding an overload which accepts a WildcardMatcher could also solve your issue?
Author
Owner

@asos-jamiestollery commented on GitHub (Oct 10, 2024):

Maybe adding an overload which accepts a WildcardMatcher could also solve your issue?

Yes that would work! That would also allow for the query parameters to be validated, nice.

@StefH Just to confirm, are you happy for me to progress with the change to add an overload to the WireMockAssertions.AtUrl method that takes a WildcardMatcher object to validate the URL against?

@asos-jamiestollery commented on GitHub (Oct 10, 2024): > Maybe adding an overload which accepts a WildcardMatcher could also solve your issue? Yes that would work! That would also allow for the query parameters to be validated, nice. @StefH Just to confirm, are you happy for me to progress with the change to add an overload to the `WireMockAssertions.AtUrl` method that takes a `WildcardMatcher` object to validate the URL against?
Author
Owner

@StefH commented on GitHub (Oct 10, 2024):

Yes you can make a PR.

Also include a unit test.

@StefH commented on GitHub (Oct 10, 2024): Yes you can make a PR. Also include a unit test.
Author
Owner

@StefH commented on GitHub (Oct 18, 2024):

@asos-jamiestollery How is it going?

@StefH commented on GitHub (Oct 18, 2024): @asos-jamiestollery How is it going?
Author
Owner

@StefH commented on GitHub (Dec 22, 2024):

https://github.com/WireMock-Net/WireMock.Net/pull/1221

@StefH commented on GitHub (Dec 22, 2024): https://github.com/WireMock-Net/WireMock.Net/pull/1221
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/WireMock.Net-wiremock#639