This is an automated email from the git hooks/post-receive script. mckinstry pushed a commit to branch debian/master in repository rest-gradle-plugin.
commit 666147261e22f41128124b4b4cd0c0d8f57fe6d6 Author: noamt <n...@10ne.org> Date: Sun Sep 20 22:53:55 2015 +0300 Clean response handler code and add more test cases --- .../groovy/org/_10ne/gradle/rest/RestTask.groovy | 32 +++++---- .../org/_10ne/gradle/rest/RestTaskSpec.groovy | 79 ++++++++++++++++++---- 2 files changed, 87 insertions(+), 24 deletions(-) diff --git a/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy b/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy index 4699d9b..742f078 100644 --- a/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy +++ b/src/main/groovy/org/_10ne/gradle/rest/RestTask.groovy @@ -128,22 +128,30 @@ class RestTask extends DefaultTask { try { serverResponse = client."${httpMethod.toLowerCase()}"(params) - if (responseHandler && responseHandler.maximumNumberOfParameters == 1) { - def parameterType = responseHandler.parameterTypes.first() - if (InputStream.isAssignableFrom(parameterType)) { - responseHandler.call(serverResponse.entity.content) - } else if (String.isAssignableFrom(parameterType)) { - serverResponse.entity.content.withStream { - responseHandler.call(it.text) - } - } else { - responseHandler.call(serverResponse.data) - } - } else { + if (noResponseHandler()) { slf4jLogger.info "Server Response:" + System.lineSeparator() + serverResponse.getData() + } else { + callResponseHandler() } } catch (groovyx.net.http.HttpResponseException e) { throw new GradleException(e.getResponse().getData().toString(), e) } } + + private boolean noResponseHandler() { + !responseHandler || responseHandler.maximumNumberOfParameters != 1 + } + + void callResponseHandler() { + def parameterType = responseHandler.parameterTypes.first() + if (InputStream.isAssignableFrom(parameterType)) { + responseHandler.call(serverResponse.entity.content) + } else if (String.isAssignableFrom(parameterType)) { + serverResponse.entity.content.withStream { + responseHandler.call(it.text) + } + } else { + responseHandler.call(serverResponse.data) + } + } } diff --git a/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy b/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy index d1352b4..55f3062 100644 --- a/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy +++ b/src/test/groovy/org/_10ne/gradle/rest/RestTaskSpec.groovy @@ -176,17 +176,12 @@ class RestTaskSpec extends Specification { 'https' | 8443 } - def 'Configure and execute a request with a custom response handler'() { + def 'Configure and execute a request with a custom string response handler'() { setup: def responseCalled = false Task task = project.tasks.create(name: 'request', type: RestTask) { - httpMethod = 'post' uri = 'bob.com' - username = 'username' - password = 'password' - requestContentType = 'requestContentType' - requestBody = 'requestBody' contentType = 'contentType' responseHandler = { String responseText -> responseCalled = (responseText == 'called') @@ -195,7 +190,39 @@ class RestTaskSpec extends Specification { def mockClient = Mock(RESTClient) task.client = mockClient - def mockAuth = Mock(AuthConfig) + def mockResponse = Mock(HttpResponseDecorator) { + getEntity() >> { + def entity = new BasicHttpEntity() + entity.content = new StringInputStream('called') + entity + } + } + + when: + task.executeRequest() + + then: + 1 * mockClient.setUri('bob.com') + 1 * mockClient.get(_ as Map) >> { Map params -> + assert params.contentType == 'contentType' + mockResponse + } + responseCalled + } + + def 'Configure and execute a request with a custom input stream response handler'() { + setup: + def responseCalled = false + + Task task = project.tasks.create(name: 'request', type: RestTask) { + uri = 'bob.com' + contentType = 'contentType' + responseHandler = { InputStream is -> + responseCalled = (is.text == 'called') + } + } + def mockClient = Mock(RESTClient) + task.client = mockClient def mockResponse = Mock(HttpResponseDecorator) { getEntity() >> { @@ -210,12 +237,40 @@ class RestTaskSpec extends Specification { then: 1 * mockClient.setUri('bob.com') - 1 * mockClient.getAuth() >> { mockAuth } - 1 * mockAuth.basic('username', 'password') - 1 * mockClient.post(_ as Map) >> { Map params -> - assert params.body == 'requestBody' + 1 * mockClient.get(_ as Map) >> { Map params -> + assert params.contentType == 'contentType' + mockResponse + } + responseCalled + } + + def 'Configure and execute a request with a custom data response handler'() { + setup: + def responseCalled = false + + Task task = project.tasks.create(name: 'request', type: RestTask) { + uri = 'bob.com' + contentType = 'contentType' + responseHandler = { Map map -> + responseCalled = (map.content == 'called') + } + } + def mockClient = Mock(RESTClient) + task.client = mockClient + + def mockResponse = Mock(HttpResponseDecorator) { + getData() >> { + [content: 'called'] + } + } + + when: + task.executeRequest() + + then: + 1 * mockClient.setUri('bob.com') + 1 * mockClient.get(_ as Map) >> { Map params -> assert params.contentType == 'contentType' - assert params.requestContentType == 'requestContentType' mockResponse } responseCalled -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/rest-gradle-plugin.git _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits