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

commit 53bb7407f39c56fc8e2b9966496d04500a9dc9bf
Author: JamesBognar <[email protected]>
AuthorDate: Sun Mar 29 17:39:39 2020 -0400

    RestClient tests.
---
 .../juneau/rest/client2/RestClientBuilderTest.java | 176 +++++++++------------
 .../org/apache/juneau/rest/RequestFormData.java    |  21 +++
 .../java/org/apache/juneau/rest/RequestQuery.java  |   2 +-
 .../java/org/apache/juneau/rest/RestRequest.java   |   2 +-
 4 files changed, 97 insertions(+), 104 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
index 507c4a8..4ce2326 100644
--- 
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
+++ 
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
@@ -35,6 +35,7 @@ import org.apache.juneau.rest.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.client2.ext.*;
 import org.apache.juneau.rest.mock2.*;
+import org.apache.juneau.rest.testutils.*;
 import org.junit.*;
 import org.junit.runners.*;
 
@@ -77,12 +78,12 @@ public class RestClientBuilderTest {
                        return req.getHeaders().get(req.getHeader("Check"));
                }
                @RestMethod(path="/checkQuery")
-               public String[] getQuery(org.apache.juneau.rest.RestRequest 
req) {
-                       return req.getQuery().get(req.getHeader("Check"));
+               public Reader getQuery(org.apache.juneau.rest.RestRequest req) {
+                       return new StringReader(req.getQuery().asQueryString());
                }
                @RestMethod(path="/checkFormData")
-               public String[] getFormData(org.apache.juneau.rest.RestRequest 
req) {
-                       return req.getFormData().get(req.getHeader("Check"));
+               public Reader postFormData(org.apache.juneau.rest.RestRequest 
req) {
+                       return new 
StringReader(req.getFormData().asQueryString());
                }
        }
 
@@ -1065,12 +1066,10 @@ public class RestClientBuilderTest {
 
        @Test
        public void h01_multipleHeaders() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
                        .debug()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Foo")
                        .headerPairs("Foo","bar","Foo","baz")
                        .header("Foo","qux")
@@ -1080,11 +1079,9 @@ public class RestClientBuilderTest {
 
        @Test
        public void h02_multipleHeaders_withRequest() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Foo")
                        .headerPairs("Foo","bar","Foo","baz")
                        .build();
@@ -1093,11 +1090,9 @@ public class RestClientBuilderTest {
 
        @Test
        public void h03_dontOverrideAccept() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Accept")
                        .header("Accept", "text/plain")
                        .build();
@@ -1106,11 +1101,9 @@ public class RestClientBuilderTest {
 
        @Test
        public void h04_dontOverrideAccept_withRequest() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Accept")
                        .header("Accept", "text/foo")
                        .build();
@@ -1119,11 +1112,9 @@ public class RestClientBuilderTest {
 
        @Test
        public void h04b_dontOverrideAccept_withRequest() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Accept")
                        .header("Accept", "text/foo")
                        .build();
@@ -1134,11 +1125,9 @@ public class RestClientBuilderTest {
 
        @Test
        public void h05_dontOverrideContentType() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Content-Type")
                        .header("Content-Type", "text/plain")
                        .build();
@@ -1147,100 +1136,83 @@ public class RestClientBuilderTest {
 
        @Test
        public void h06_dontOverrideAccept_withRequest() throws Exception {
-               MockLogger ml = new MockLogger();
                RestClient rc = MockRestClient
                        .create(A.class)
                        .simpleJson()
-                       .logTo(Level.SEVERE, ml)
                        .header("Check", "Content-Type")
                        .header("Content-Type", "text/foo")
                        .build();
-               rc.get("/checkHeader").header("Content-Type", 
"text/plain").complete();
-               ml.assertLevel(Level.SEVERE);
-               ml.assertMessageContains("Content-Type: 
text/plain").assertMessageContains("Content-Type: text/plain");
+               rc.get("/checkHeader").header("Content-Type", 
"text/plain").run().getBody().assertValue("['text/foo','text/plain']");
+       }
+
+       @Test
+       public void h07_header_HttpPartSerializer() throws Exception {
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .header("Check", "Foo")
+                       .header("Foo", "foo1", new XPartSerializer(), null)
+                       .build();
+               
rc.get("/checkHeader").header(AddFlag.DEFAULT_FLAGS,"Foo","foo2",new 
XPartSerializer(),null).run().getBody().assertValue("['xfoo1x','xfoo2x']");
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Query
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @Test
+       public void i01_query_basic() throws Exception {
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .query("Foo","bar")
+                       .query("Foo",new StringBuilder("baz"))
+                       .build();
+               
rc.get("/checkQuery").run().getBody().assertValue("Foo=bar&Foo=baz");
+       }
+
+       @Test
+       public void i02_query_objects() throws Exception {
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .query(new SimpleNameValuePair("Foo","f1"))
+                       .query(OMap.of("Foo","f2"))
+                       .query(AMap.of("Foo","f3"))
+                       .query(NameValuePairs.of("Foo","f4","Foo","f5"))
+                       .query(new SimpleNameValuePair("Foo","f6"), new 
SimpleNameValuePair("Foo","f7"))
+                       .build();
+               
rc.get("/checkQuery").run().getBody().assertValue("Foo=f1&Foo=f2&Foo=f3&Foo=f4&Foo=f5&Foo=f6&Foo=f7");
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Form data
+       
//-----------------------------------------------------------------------------------------------------------------
+       @Test
+       public void j01_formData_basic() throws Exception {
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .formData("Foo","bar")
+                       .formData("Foo",new StringBuilder("baz"))
+                       .build();
+               
rc.post("/checkFormData").run().getBody().assertValue("Foo=bar&Foo=baz");
+       }
+
+       @Test
+       public void j02_formData_objects() throws Exception {
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .formData(new SimpleNameValuePair("Foo","f1"))
+                       .formData(OMap.of("Foo","f2"))
+                       .formData(AMap.of("Foo","f3"))
+                       .formData(NameValuePairs.of("Foo","f4","Foo","f5"))
+                       .formData(new SimpleNameValuePair("Foo","f6"), new 
SimpleNameValuePair("Foo","f7"))
+                       .build();
+               
rc.post("/checkFormData").run().getBody().assertValue("Foo=f1&Foo=f2&Foo=f3&Foo=f4&Foo=f5&Foo=f6&Foo=f7");
        }
 
-//     @Test
-//     public void h07_header_HttpPartSerializer() throws Exception {
-//     //      public RestClientBuilder header(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-//             fail();
-//     }
-//
-//     // TODO - Test Header[] on servlet side.
-//
-//     
//-----------------------------------------------------------------------------------------------------------------
-//     // Query
-//     
//-----------------------------------------------------------------------------------------------------------------
-//
-//     @Test
-//     public void i01_query_StringObject() throws Exception { fail(); }
-////   public RestClientBuilder query(String name, Object value) {
-//
-//     @Test
-//     public void i02_query_NameValuePair() throws Exception { fail(); }
-////   public RestClientBuilder query(NameValuePair param) {
-//
-//     @Test
-//     public void i03_query_OMap() throws Exception { fail(); }
-////   public RestClientBuilder query(OMap params) {
-//
-//     @Test
-//     public void i04_query_Map() throws Exception { fail(); }
-////   public RestClientBuilder query(Map<String,Object> params) {
-//
-//     @Test
-//     public void i05_query_NameValuePairs() throws Exception { fail(); }
-////   public RestClientBuilder query(NameValuePairs params) {
-//
-//     @Test
-//     public void i06_query_NameValuePairArray() throws Exception { fail(); }
-////   public RestClientBuilder query(NameValuePair...params) {
-//
-//     @Test
-//     public void i07_query_Objects() throws Exception { fail(); }
-////   public RestClientBuilder query(Object...pairs) {
-//
-//     @Test
-//     public void i08_query_HttpPartSerializer() throws Exception { fail(); }
-////   public RestClientBuilder query(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-//
-//
-//     
//-----------------------------------------------------------------------------------------------------------------
-//     // Form data
-//     
//-----------------------------------------------------------------------------------------------------------------
-//
-//     @Test
-//     public void j01_formData_StringObject() throws Exception { fail(); }
-////   public RestClientBuilder formData(String name, Object value) {
-//
-//     @Test
-//     public void j02_formData_NameValuePair() throws Exception { fail(); }
-////   public RestClientBuilder formData(NameValuePair param) {
-//
-//     @Test
-//     public void j03_formData_OMap() throws Exception { fail(); }
-////   public RestClientBuilder formData(OMap params) {
-//
-//     @Test
-//     public void j04_formData_Map() throws Exception { fail(); }
-////   public RestClientBuilder formData(Map<String,Object> params) {
-//
-//     @Test
-//     public void j05_formData_NameValuePairs() throws Exception { fail(); }
-////   public RestClientBuilder formData(NameValuePairs params) {
-//
-//     @Test
-//     public void j06_formData_NameValuePairArray() throws Exception { 
fail(); }
-////   public RestClientBuilder formData(NameValuePair...params) {
-//
-//     @Test
-//     public void j07_formData_Objects() throws Exception { fail(); }
-////   public RestClientBuilder formData(Object...pairs) {
-//
-//     @Test
-//     public void j08_formData_HttpPartSerializer() throws Exception { 
fail(); }
-////   public RestClientBuilder formData(String name, Object value, 
HttpPartSerializer serializer, HttpPartSchema schema) {
-//
 //     
//-----------------------------------------------------------------------------------------------------------------
 //     // RestClient properties
 //     
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
index 8986ee9..59bdd3e 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestFormData.java
@@ -604,6 +604,27 @@ public class RequestFormData extends 
LinkedHashMap<String,String[]> {
                return SimpleJsonSerializer.DEFAULT.toString(m);
        }
 
+       /**
+        * Converts this object to a query string.
+        *
+        * <p>
+        * Returned query string does not start with <js>'?'</js>.
+        *
+        * @return A new query string, or an empty string if this object is 
empty.
+        */
+       public String asQueryString() {
+               StringBuilder sb = new StringBuilder();
+               for (Map.Entry<String,String[]> e : this.entrySet()) {
+                       for (int i = 0; i < e.getValue().length; i++) {
+                               if (sb.length() > 0)
+                                       sb.append("&");
+                               
sb.append(urlEncode(e.getKey())).append('=').append(urlEncode(e.getValue()[i]));
+                       }
+               }
+               return sb.toString();
+       }
+
+
        @Override /* Object */
        public String toString() {
                return toString(false);
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQuery.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQuery.java
index 95f7340..5f2c75c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQuery.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RequestQuery.java
@@ -704,7 +704,7 @@ public final class RequestQuery extends 
LinkedHashMap<String,String[]> {
         *
         * @return A new query string, or an empty string if this object is 
empty.
         */
-       public String toQueryString() {
+       public String asQueryString() {
                StringBuilder sb = new StringBuilder();
                for (Map.Entry<String,String[]> e : this.entrySet()) {
                        for (int i = 0; i < e.getValue().length; i++) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index ba287a0..f9f652c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -924,7 +924,7 @@ public final class RestRequest extends 
HttpServletRequestWrapper {
                                for (Map.Entry<String,?> e : 
addQueryParams.entrySet())
                                        rq.put(e.getKey(), e.getValue());
                        if (! rq.isEmpty())
-                               sb.append('?').append(rq.toQueryString());
+                               sb.append('?').append(rq.asQueryString());
                        uri = sb.toString();
                }
                try {

Reply via email to