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

commit 25fa186d097b0ce628c10acfd8edf2add2c8141b
Author: JamesBognar <[email protected]>
AuthorDate: Wed Jul 1 12:02:15 2020 -0400

    RestClient tests.
---
 .../rest/client2/RestClient_Headers_Test.java      |  1 +
 .../org/apache/juneau/rest/client2/RestClient.java | 23 +++++++++++-----------
 .../juneau/rest/client2/RestClientBuilder.java     |  9 ++++++---
 .../apache/juneau/rest/client2/RestRequest.java    | 16 +++++++++++++++
 4 files changed, 34 insertions(+), 15 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
index 3c18ca3..b99f4f0 100644
--- 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
+++ 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClient_Headers_Test.java
@@ -120,6 +120,7 @@ public class RestClient_Headers_Test {
                
checkFooClient().headers(SerializedNameValuePair.create().name("Foo").value("Bar").serializer(OpenApiSerializer.DEFAULT)).build().get("/headers").headers(SerializedNameValuePair.create().name("Foo").value("Baz").serializer(OpenApiSerializer.DEFAULT)).debug().run().assertBody().is("['Bar','Baz']");
                
checkFooClient().headers(SerializedHeader.create().name("Foo").value("Bar").serializer(OpenApiSerializer.DEFAULT)).build().get("/headers").headers(SerializedHeader.create().name("Foo").value("Baz").serializer(OpenApiSerializer.DEFAULT)).debug().run().assertBody().is("['Bar','Baz']");
                checkFooClient().headers((Object)new 
Header[]{header("Foo","bar")}).build().get("/headers").headers((Object)new 
Header[]{header("Foo","baz")}).debug().run().assertBody().is("['bar','baz']");
+               
checkFooClient().headers(HeaderSupplier.of(header("Foo","bar"))).build().get("/headers").headers(HeaderSupplier.of(header("Foo","baz"))).run().assertBody().is("['bar','baz']");
                
checkClient("f").build().get("/headers").headers(bean).debug().run().assertBody().is("['1']");
                
checkClient("f").build().get("/headers").headers((Object)null).debug().run().assertBody().is("null");
                assertThrown(()->client().headers("Foo")).contains("Invalid 
type");
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 92fdba2..39f017b 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
@@ -1984,10 +1984,7 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
 
                this.headers = HeaderSupplier.create();
                for (Object o : getListProperty(RESTCLIENT_headers, 
Object.class)) {
-                       if (o instanceof SerializedHeaderBuilder)
-                               o = 
((SerializedHeaderBuilder)o).serializer(partSerializerSession, false).build();
-                       else if (o instanceof SerializedNameValuePairBuilder)
-                               o = 
((SerializedNameValuePairBuilder)o).serializer(partSerializerSession, 
false).build();
+                       o = buildBuilders(o, partSerializerSession);
                        if (o instanceof HeaderSupplier)
                                headers.add((HeaderSupplier)o);
                        else
@@ -1996,10 +1993,7 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
 
                this.query = NameValuePairSupplier.create();
                for (Object o : getListProperty(RESTCLIENT_query, 
Object.class)) {
-                       if (o instanceof SerializedHeaderBuilder)
-                               o = 
((SerializedHeaderBuilder)o).serializer(partSerializerSession, false).build();
-                       else if (o instanceof SerializedNameValuePairBuilder)
-                               o = 
((SerializedNameValuePairBuilder)o).serializer(partSerializerSession, 
false).build();
+                       o = buildBuilders(o, partSerializerSession);
                        if (o instanceof NameValuePairSupplier)
                                query.add((NameValuePairSupplier)o);
                        else
@@ -2008,10 +2002,7 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
 
                this.formData = NameValuePairSupplier.create();
                for (Object o : getListProperty(RESTCLIENT_formData, 
Object.class)) {
-                       if (o instanceof SerializedHeaderBuilder)
-                               o = 
((SerializedHeaderBuilder)o).serializer(partSerializerSession, false).build();
-                       else if (o instanceof SerializedNameValuePairBuilder)
-                               o = 
((SerializedNameValuePairBuilder)o).serializer(partSerializerSession, 
false).build();
+                       o = buildBuilders(o, partSerializerSession);
                        if (o instanceof NameValuePairSupplier)
                                formData.add((NameValuePairSupplier)o);
                        else
@@ -2025,6 +2016,14 @@ public class RestClient extends BeanContext implements 
HttpClient, Closeable, Re
                creationStack = isDebug() ? 
Thread.currentThread().getStackTrace() : null;
        }
 
+       private static Object buildBuilders(Object o, HttpPartSerializerSession 
ss) {
+               if (o instanceof SerializedHeaderBuilder)
+                       return ((SerializedHeaderBuilder)o).serializer(ss, 
false).build();
+               if (o instanceof SerializedNameValuePairBuilder)
+                       return 
((SerializedNameValuePairBuilder)o).serializer(ss, false).build();
+               return o;
+       }
+
        /**
         * Returns <jk>true</jk> if specified http method has content.
         * <p>
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
index 1c177f0..668c170 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client2/RestClientBuilder.java
@@ -1309,6 +1309,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link HeaderSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -1322,7 +1323,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
        @FluentSetter
        public RestClientBuilder headers(Object...headers) {
                for (Object h : headers) {
-                       if (BasicHeader.canCast(h)) {
+                       if (BasicHeader.canCast(h) || h instanceof 
HeaderSupplier) {
                                appendTo(RESTCLIENT_headers, h);
                        } else if (h instanceof Map) {
                                for (Map.Entry<Object,Object> e : 
toMap(h).entrySet())
@@ -2058,6 +2059,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link NameValuePairSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -2071,7 +2073,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
        @FluentSetter
        public RestClientBuilder queries(Object...params) {
                for (Object p : params) {
-                       if (BasicNameValuePair.canCast(p)) {
+                       if (BasicNameValuePair.canCast(p) || p instanceof 
NameValuePairSupplier) {
                                appendTo(RESTCLIENT_query, p);
                        } else if (p instanceof Map) {
                                for (Map.Entry<Object,Object> e : 
toMap(p).entrySet())
@@ -2345,6 +2347,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link NameValuePairSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -2358,7 +2361,7 @@ public class RestClientBuilder extends BeanContextBuilder 
{
        @FluentSetter
        public RestClientBuilder formDatas(Object...params) {
                for (Object p : params) {
-                       if (BasicNameValuePair.canCast(p)) {
+                       if (BasicNameValuePair.canCast(p) || p instanceof 
NameValuePairSupplier) {
                                appendTo(RESTCLIENT_formData, p);
                        } else if (p instanceof Map) {
                                for (Map.Entry<Object,Object> e : 
toMap(p).entrySet())
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 4ada3d8..a9d31a3 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
@@ -940,6 +940,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link NameValuePairSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -956,6 +957,9 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                for (Object o : params) {
                        if (BasicNameValuePair.canCast(o)) {
                                innerPath(BasicNameValuePair.cast(o));
+                       } else if (o instanceof NameValuePairSupplier) {
+                               for (NameValuePair p : (NameValuePairSupplier)o)
+                                       innerPath(p);
                        } else if (o instanceof Collection) {
                                for (Object o2 : (Collection<?>)o)
                                        innerPath(BasicNameValuePair.cast(o2));
@@ -1270,6 +1274,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link NameValuePairSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -1286,6 +1291,9 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                for (Object o : params) {
                        if (BasicNameValuePair.canCast(o)) {
                                l.add(BasicNameValuePair.cast(o));
+                       } else if (o instanceof NameValuePairSupplier) {
+                               for (NameValuePair p : (NameValuePairSupplier)o)
+                                       l.add(p);
                        } else if (o instanceof Collection) {
                                for (Object o2 : (Collection<?>)o)
                                        l.add(BasicNameValuePair.cast(o2));
@@ -1651,6 +1659,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link NameValuePairSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -1667,6 +1676,9 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                for (Object o : params) {
                        if (BasicNameValuePair.canCast(o)) {
                                l.add(BasicNameValuePair.cast(o));
+                       } else if (o instanceof NameValuePairSupplier) {
+                               for (NameValuePair p : (NameValuePairSupplier)o)
+                                       l.add(p);
                        } else if (o instanceof Collection) {
                                for (Object o2 : (Collection<?>)o)
                                        l.add(BasicNameValuePair.cast(o2));
@@ -2180,6 +2192,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
         *              <li>{@link NameValuePairable}
         *              <li>{@link java.util.Map.Entry}
         *              <li>{@link NameValuePairs}
+        *              <li>{@link HeaderSupplier}
         *              <li>{@link Map}
         *              <ul>
         *                      <li>Values can be any POJO.
@@ -2196,6 +2209,9 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                for (Object o : headers) {
                        if (BasicHeader.canCast(o)) {
                                l.add(BasicHeader.cast(o));
+                       } else if (o instanceof HeaderSupplier) {
+                               for (Header h : (HeaderSupplier)o)
+                                       l.add(h);
                        } else if (o instanceof Collection) {
                                for (Object o2 : (Collection<?>)o)
                                        l.add(BasicHeader.cast(o2));

Reply via email to