This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push: new 4fb6272 RestClient tests. 4fb6272 is described below commit 4fb627253e92b21d152f7e1858ff937e313b30c1 Author: JamesBognar <james.bog...@salesforce.com> AuthorDate: Tue Jun 30 21:16:37 2020 -0400 RestClient tests. --- .../rest/client2/RestClient_Logging_Test.java | 56 +++++++++++++++++++++- .../apache/juneau/rest/client2/RestRequest.java | 2 +- .../apache/juneau/rest/client2/RestResponse.java | 21 +++----- .../rest/reshandlers/InputStreamHandler.java | 1 - 4 files changed, 63 insertions(+), 17 deletions(-) diff --git a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java index 6f75d2d..644f455 100644 --- a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java +++ b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Logging_Test.java @@ -14,8 +14,10 @@ package org.apache.juneau.rest.client2; import static org.junit.runners.MethodSorters.*; +import java.io.*; import java.util.logging.*; +import org.apache.http.entity.*; import org.apache.juneau.*; import org.apache.juneau.http.annotation.*; import org.apache.juneau.rest.*; @@ -39,10 +41,19 @@ public class RestClient_Logging_Test { @Rest public static class A extends BasicRest { - @RestMethod(path="/bean") + @RestMethod public ABean postBean(@Body ABean b) { return b; } + @RestMethod + public InputStream postStream(@Body InputStream b, org.apache.juneau.rest.RestResponse res) { + res.setHeader("Content-Encoding", "identity"); + return b; + } + @RestMethod + public ABean getBean() { + return bean; + } } @Test @@ -79,6 +90,45 @@ public class RestClient_Logging_Test { "=== END =======================================================================", "" ); + c.reset(); + + client().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().get("/bean").complete(); + c.assertContents().is( + "", + "=== HTTP Call (outgoing) ======================================================", + "=== REQUEST ===", + "GET http://localhost/bean", + "---request headers---", + " Accept: application/json+simple", + "=== RESPONSE ===", + "HTTP/1.1 200 ", + "---response headers---", + " Content-Type: application/json", + "---response content---", + "{f:1}", + "=== END =======================================================================", + "" + ); + c.reset(); + + clientPlain().logRequests(DetailLevel.FULL,Level.SEVERE).logToConsole().logger(l).console(c).build().post("/stream",new InputStreamEntity(new ByteArrayInputStream("foo".getBytes()))).complete(); + c.assertContents().is( + "", + "=== HTTP Call (outgoing) ======================================================", + "=== REQUEST ===", + "POST http://localhost/stream", + "---request headers---", + "---request entity---", + "=== RESPONSE ===", + "HTTP/1.1 200 ", + "---response headers---", + " Content-Encoding: identity", + "---response content---", + "foo", + "=== END =======================================================================", + "" + ); + c.reset(); client().logRequests(DetailLevel.NONE,Level.SEVERE).logToConsole().logger(l).console(MockConsole.class).build().post("/bean",bean).complete(); } @@ -179,4 +229,8 @@ public class RestClient_Logging_Test { private static RestClientBuilder client() { return MockRestClient.create(A.class).simpleJson(); } + + private static RestClientBuilder clientPlain() { + return MockRestClient.create(A.class); + } } diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java index 22aebfd..4ada3d8 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestRequest.java @@ -3002,7 +3002,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur * @return The body of this request, or <jk>null</jk> if it doesn't have a body. */ public HttpEntity getHttpEntity() { - return (request instanceof HttpEntityEnclosingRequestBase ? ((HttpEntityEnclosingRequestBase)request).getEntity() : null); + return hasHttpEntity() ? ((HttpEntityEnclosingRequestBase)request).getEntity() : null; } /** diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java index 3898321..cf2ca91 100644 --- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java +++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestResponse.java @@ -985,19 +985,13 @@ public class RestResponse implements HttpResponse { if (request.hasHttpEntity()) { sb.append("\n---request entity---"); HttpEntity e = request.getHttpEntity(); - if (e == null) - sb.append("\nEntity is null"); - else { - if (e.getContentType() != null) - sb.append("\n\t").append(e.getContentType()); - if (e.getContentEncoding() != null) - sb.append("\n\t").append(e.getContentEncoding()); - if (e.isRepeatable()) { - try { - sb.append("\n---request content---\n").append(EntityUtils.toString(e)); - } catch (Exception ex) { - throw new RuntimeException(ex); - } + if (e.getContentType() != null) + sb.append("\n\t").append(e.getContentType()); + if (e.isRepeatable()) { + try { + sb.append("\n---request content---\n").append(EntityUtils.toString(e)); + } catch (Exception ex) { + sb.append("\n---request content exception---\n").append(ex.getMessage()); } } } @@ -1028,5 +1022,4 @@ public class RestResponse implements HttpResponse { HttpResponse asHttpResponse() { return response; } - } diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/InputStreamHandler.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/InputStreamHandler.java index 7e835dd..c13ea16 100644 --- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/InputStreamHandler.java +++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/reshandlers/InputStreamHandler.java @@ -36,7 +36,6 @@ public final class InputStreamHandler implements ResponseHandler { @Override /* ResponseHandler */ public boolean handle(RestRequest req, RestResponse res) throws IOException, NotAcceptable, HttpException { if (res.isOutputType(InputStream.class)) { - res.setHeader("Content-Type", res.getContentType()); try (OutputStream os = res.getNegotiatedOutputStream()) { IOPipe.create(res.getOutput(InputStream.class), os).run(); }