I'm using WireMock-Net for stubbing requests.
I want to do the following request:
Request:
http://localhost:63078/services/query/?q=SELECT Id from User where username='[email protected]'
The request is composed by a SOQL Query. Here's a snippet of what I tried to do:
stub.Given(Request.Create()
.WithPath("/services/query/")
.WithParam("q", "SELECT Id from User where username='[email protected]'")
.UsingGet())
.RespondWith(Response.Create()
.WithStatusCode(200)
.WithHeader("Content-Type", "application/json")
.WithBodyAsJson(new { Id = "5bdf076c-5654-4b3e-842c-7caf1fabf8c9" }));
The problem is: wiremock always replies with a 404. I've also tried using the RegexMatcher, like so:
.WithPath("/services/query/")
.WithParam("q", new WireMock.Matchers.RegexMatcher("SELECT Id from User where username.*$"))
But I still got a 404.
I think the problem is in the query parameter, because it has two equals "=". Can someone help me solve this?
This has been fixed in the latest version (1.0.19) from WireMock.Net
Please retry and mark this answer as accepted if it works correctly for you.
Details: the solution is based on Get url parameters from a string in .NET
You could try to do the url encode. So when you are doing
SELECT Id from User where username='[email protected]'
you should be doing
SELECT %20Id%20from%20User%20where%20username%3D%27user%40gmail.com%27
Hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With