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 fe83c79  RestClient tests.
fe83c79 is described below

commit fe83c79e0dd613fc96dd6c3384efe8cc959b599b
Author: JamesBognar <[email protected]>
AuthorDate: Tue Jun 9 16:38:54 2020 -0400

    RestClient tests.
---
 .../main/ConfigurablePropertyCodeGenerator.java    |  1 +
 .../apache/juneau/rest/client2/RestClientTest.java | 57 +++++++++++++++++++---
 .../org/apache/juneau/rest/client2/RestClient.java | 50 +++++++------------
 .../apache/juneau/rest/mock2/MockRestClient.java   |  5 --
 .../juneau/rest/mock2/MockRestClientBuilder.java   | 54 ++++++++++++++++++++
 5 files changed, 124 insertions(+), 43 deletions(-)

diff --git 
a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java 
b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
index fe462cd..8fbadb6 100644
--- 
a/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
+++ 
b/juneau-releng/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
@@ -45,6 +45,7 @@ import org.apache.juneau.xml.*;
 public class ConfigurablePropertyCodeGenerator {
 
        static Class<?>[] classes = new Class<?>[]{
+               BasicRuntimeException.class,
                BeanContextBuilder.class,
                BeanTraverseBuilder.class,
                ConfigBuilder.class,
diff --git 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
index c3ad079..7741ffb 100644
--- 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
+++ 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientTest.java
@@ -34,6 +34,7 @@ import org.apache.http.message.*;
 import org.apache.http.protocol.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
+import org.apache.juneau.annotation.URI;
 import org.apache.juneau.collections.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.http.BasicNameValuePair;
@@ -303,12 +304,56 @@ public class RestClientTest {
        @Test
        public void a10_basicCalls_head() throws Exception {
                MockRestClient
-               .create(A.class)
-               .simpleJson()
-               .build()
-               .head("/bean")
-               .run()
-               .assertBody().is("");
+                       .create(A.class)
+                       .simpleJson()
+                       .build()
+                       .head("/bean")
+                       .run()
+                       .assertBody().is("");
+       }
+
+       @Test
+       public void a11_basicCalls_formPost() throws Exception {
+               MockRestClient
+                       .create(A.class)
+                       .build()
+                       .formPost("/bean", bean)
+                       .accept("application/json+simple")
+                       .run()
+                       .assertBody().is("{f:1}");
+
+               MockRestClient
+                       .create(A.class)
+                       .build()
+                       .formPost("/bean")
+                       .body(bean)
+                       .accept("application/json+simple")
+                       .run()
+                       .assertBody().is("{f:1}");
+
+               MockRestClient
+                       .create(A.class)
+                       .build()
+                       .formPost("/bean", NameValuePairs.of("f","1"))
+                       .accept("application/json+simple")
+                       .run()
+                       .assertBody().is("{f:1}");
+
+               MockRestClient
+                       .create(A.class)
+                       .build()
+                       .formPost("/bean", BasicNameValuePair.of("f","1"))
+                       .accept("application/json+simple")
+                       .run()
+                       .assertBody().is("{f:1}");
+
+               MockRestClient
+                       .create(A.class)
+                       .build()
+                       .formPostPairs("/bean", "f", "1")
+                       .accept("application/json+simple")
+                       .run()
+                       .assertBody().is("{f:1}");
        }
 
        
//------------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
index 3cb1727..2de9827 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClient.java
@@ -172,7 +172,6 @@ import org.apache.http.client.CookieStore;
  *             <li class='jm'>{@link RestClient#options(Object) options(Object 
url)}
  *             <li class='jm'>{@link RestClient#formPost(Object,Object) 
formPost(Object url, Object body)}
  *             <li class='jm'>{@link RestClient#formPost(Object) 
formPost(Object url)}
- *             <li class='jm'>{@link 
RestClient#formPost(Object,NameValuePairs) formPost(Object url, NameValuePairs 
parameters)}
  *             <li class='jm'>{@link 
RestClient#formPost(Object,NameValuePair...) formPost(Object url, 
NameValuePair...parameters)}
  *             <li class='jm'>{@link 
RestClient#formPostPairs(Object,Object...) formPost(Object url, 
Object...parameters)}
  *             <li class='jm'>{@link 
RestClient#request(HttpMethod,Object,Object) request(HttpMethod method, Object 
url, Object body)}
@@ -2408,6 +2407,9 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
         *      The object to serialize and transmit to the URL as the body of 
the request.
         *      <ul class='spaced-list'>
         *              <li class='jc'>{@link HttpEntity} - Serialized directly.
+        *              <li class='jc'>{@link NameValuePair} - URL-encoded as a 
single name-value pair.
+        *              <li class='jc'>{@link NameValuePair} array - 
URL-encoded as name value pairs.
+        *              <li class='jc'>{@link NameValuePairs} - URL-encoded as 
name value pairs.
         *              <li class='jc'>{@link Object} - Converted to a {@link 
SerializedHttpEntity} using {@link UrlEncodingSerializer} to serialize.
         *      </ul>
         * @return
@@ -2416,8 +2418,21 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
         * @throws RestCallException If any authentication errors occurred.
         */
        public RestRequest formPost(Object url, Object body) throws 
RestCallException {
-               return request("POST", url, true)
-                       .body(body instanceof HttpEntity ? body : new 
SerializedHttpEntity(body, urlEncodingSerializer, null, null));
+               RestRequest req = request("POST", url, true);
+               try {
+                       if (body instanceof NameValuePair)
+                               return req.body(new 
UrlEncodedFormEntity(AList.of((NameValuePair)body)));
+                       if (body instanceof NameValuePair[])
+                               return req.body(new 
UrlEncodedFormEntity(Arrays.asList((NameValuePair[])body)));
+                       if (body instanceof NameValuePairs)
+                               return req.body(new 
UrlEncodedFormEntity((NameValuePairs)body));
+                       if (body instanceof HttpEntity)
+                               return req.body(body);
+                       return req.body(new SerializedHttpEntity(body, 
urlEncodingSerializer, null, null));
+               } catch (UnsupportedEncodingException e) {
+                       // Should never happen.
+                       throw new RestCallException(e);
+               }
        }
 
        /**
@@ -2463,35 +2478,6 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
         *      as a parsed object.
         * @throws RestCallException If any authentication errors occurred.
         */
-       public RestRequest formPost(Object url, NameValuePairs parameters) 
throws RestCallException {
-               try {
-                       return request("POST", url, true).body(new 
UrlEncodedFormEntity(parameters));
-               } catch (UnsupportedEncodingException e) {
-                       throw new RestCallException(e);
-               }
-       }
-
-       /**
-        * Perform a <c>POST</c> request with a content type of 
<c>application/x-www-form-urlencoded</c>
-        * against the specified URL.
-        *
-        * @param url
-        *      The URL of the remote REST resource.
-        *      Can be any of the following types:
-        *      <ul class='spaced-list'>
-        *              <li class='jc'>{@link URIBuilder}
-        *              <li class='jc'>{@link URI}
-        *              <li class='jc'>{@link URL}
-        *              <li class='jc'>{@link String}
-        *              <li class='jc'>{@link Object} - Converted to 
<c>String</c> using <c>toString()</c>
-        *      </ul>
-        * @param parameters
-        *      The parameters of the form post.
-        * @return
-        *      A {@link RestRequest} object that can be further tailored 
before executing the request and getting the response
-        *      as a parsed object.
-        * @throws RestCallException If any authentication errors occurred.
-        */
        public RestRequest formPost(Object url, NameValuePair...parameters) 
throws RestCallException {
                return formPost(url, new NameValuePairs(parameters));
        }
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
index 829f521..ee30667 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClient.java
@@ -441,11 +441,6 @@ public class MockRestClient extends RestClient implements 
HttpClientConnection {
        }
 
        @Override /* RestClient */
-       public MockRestRequest formPost(Object url, NameValuePairs parameters) 
throws RestCallException {
-               return (MockRestRequest)super.formPost(url, parameters);
-       }
-
-       @Override /* RestClient */
        public MockRestRequest formPost(Object url, NameValuePair...parameters) 
throws RestCallException {
                return (MockRestRequest)super.formPost(url, parameters);
        }
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java
index 3455455..6347cc9 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockRestClientBuilder.java
@@ -886,18 +886,36 @@ public class MockRestClientBuilder extends 
RestClientBuilder {
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder formData(String name, Supplier<?> value) {
+               super.formData(name, value);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder formData(String name, Object value, 
HttpPartSchema schema) {
                super.formData(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder formData(String name, Supplier<?> value, 
HttpPartSchema schema) {
+               super.formData(name, value, schema);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder formData(String name, Object value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
                super.formData(name, value, schema, serializer);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder formData(String name, Supplier<?> value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
+               super.formData(name, value, schema, serializer);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder formDataPairs(Object...pairs) {
                super.formDataPairs(pairs);
                return this;
@@ -928,18 +946,36 @@ public class MockRestClientBuilder extends 
RestClientBuilder {
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder header(String name, Supplier<?> value) {
+               super.header(name, value);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder header(String name, Object value, 
HttpPartSchema schema) {
                super.header(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder header(String name, Supplier<?> value, 
HttpPartSchema schema) {
+               super.header(name, value, schema);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder header(String name, Object value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
                super.header(name, value, schema, serializer);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder header(String name, Supplier<?> value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
+               super.header(name, value, schema, serializer);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder headerPairs(Object...pairs) {
                super.headerPairs(pairs);
                return this;
@@ -1302,18 +1338,36 @@ public class MockRestClientBuilder extends 
RestClientBuilder {
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder query(String name, Supplier<?> value) {
+               super.query(name, value);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder query(String name, Object value, 
HttpPartSchema schema) {
                super.query(name, value, schema);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder query(String name, Supplier<?> value, 
HttpPartSchema schema) {
+               super.query(name, value, schema);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder query(String name, Object value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
                super.query(name, value, schema, serializer);
                return this;
        }
 
        @Override /* GENERATED - RestClientBuilder */
+       public MockRestClientBuilder query(String name, Supplier<?> value, 
HttpPartSchema schema, HttpPartSerializer serializer) {
+               super.query(name, value, schema, serializer);
+               return this;
+       }
+
+       @Override /* GENERATED - RestClientBuilder */
        public MockRestClientBuilder queryPairs(Object...pairs) {
                super.queryPairs(pairs);
                return this;

Reply via email to