In the current grails-jaxrs code, it is not immediate obvious how you pass in query parameters in an Integration test.
Fails:
sendRequest('/api/test07?max=10', 'GET', ''.bytes)
Succeeds:
controller.request.queryString = 'max=10'
sendRequest('/api/test07', 'GET', ''.bytes)
If you modify the JaxRsIntegrationTestMixin.groovy file like follows, it will support the intuitive syntax that currently fails:
diff --git a/src/groovy/org/grails/jaxrs/itest/JaxRsIntegrationTestMixin.groovy b/src/groovy/org/grails/jaxrs/itest/JaxRsIntegrationTestMixin.groovy
index b96fdd5..f1a07b7 100644
--- a/src/groovy/org/grails/jaxrs/itest/JaxRsIntegrationTestMixin.groovy
+++ b/src/groovy/org/grails/jaxrs/itest/JaxRsIntegrationTestMixin.groovy
@@ -51,7 +51,9 @@ class JaxRsIntegrationTestMixin implements JaxRsIntegrationTest {
HttpServletResponse sendRequest(String url, String method, Map<String, Object> headers, byte[] content = ''.bytes) {
resetResponse()
- requestUrl = url
+ URI uri = new URI(url)
+ controller.request.queryString = uri.query
+ requestUrl = uri.path
requestMethod = method
requestContent = content