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

commit d9037ac140da924d8dedb3fa981ceffe92175d0f
Author: JamesBognar <[email protected]>
AuthorDate: Fri Jun 5 18:05:36 2020 -0400

    RestClient tests.
---
 .../org/apache/juneau/testutils/TestSupplier.java  | 33 +++++++++++
 .../apache/juneau/rest/client2/RestClientTest.java | 66 +++++++++++++++++-----
 .../juneau/rest/mock2/MockServletRequest.java      |  1 +
 .../org/apache/juneau/rest/util/RestUtils.java     |  2 +-
 4 files changed, 86 insertions(+), 16 deletions(-)

diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java
new file mode 100644
index 0000000..c6da0da
--- /dev/null
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestSupplier.java
@@ -0,0 +1,33 @@
+// 
***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright 
ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                
                                              *
+// *                                                                           
                                              *
+// *  http://www.apache.org/licenses/LICENSE-2.0                               
                                              *
+// *                                                                           
                                              *
+// * Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 
express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the 
License.                                              *
+// 
***************************************************************************************************************************
+package org.apache.juneau.testutils;
+
+import java.util.function.*;
+
+public class TestSupplier implements Supplier<Object> {
+       public Object value;
+
+       public static TestSupplier of(Object value) {
+               return new TestSupplier().set(value);
+       }
+
+       public TestSupplier set(Object value) {
+               this.value = value;
+               return this;
+       }
+
+       @Override
+       public Object get() {
+               return value;
+       }
+}
\ No newline at end of file
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 8589f91..f245344 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
@@ -20,7 +20,6 @@ import java.io.*;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
-import java.util.function.*;
 import java.util.logging.*;
 
 import org.apache.http.*;
@@ -53,6 +52,7 @@ import org.apache.juneau.rest.client2.RestResponse;
 import org.apache.juneau.rest.mock2.*;
 import org.apache.juneau.serializer.*;
 import org.apache.juneau.svl.*;
+import org.apache.juneau.testutils.*;
 import org.apache.juneau.transform.*;
 import org.apache.juneau.xml.*;
 import org.junit.*;
@@ -121,20 +121,7 @@ public class RestClientTest {
                CALENDAR.set(2000, 11, 31, 12, 34, 56);
        }
 
-       public static class TestSupplier implements Supplier<Object> {
-               public Object value;
 
-               public TestSupplier set(Object value) {
-                       this.value = value;
-                       return this;
-               }
-
-               @Override
-               public Object get() {
-                       return value;
-               }
-
-       }
 
        
//------------------------------------------------------------------------------------------------------------------
        // Override client and builder.
@@ -428,7 +415,7 @@ public class RestClientTest {
 
        @Test
        public void f01a_supplierHeader() throws Exception {
-               TestSupplier s = new TestSupplier().set("foo");
+               TestSupplier s = TestSupplier.of("foo");
 
                RestClient rc = MockRestClient
                        .create(A.class)
@@ -1638,6 +1625,30 @@ public class RestClientTest {
        }
 
        @Test
+       public void h08a_headers_withSchemaAndSupplier() throws Exception {
+               TestSupplier s = TestSupplier.of(new String[]{"foo","bar"});
+
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .header("Check", "Foo")
+                       .header("Foo", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .build();
+
+               rc.get("/checkHeader")
+                       .header("Foo", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .run()
+                       .assertBody().is("['foo|bar','foo|bar']");
+
+               s.set(new String[]{"bar","baz"});
+
+               rc.get("/checkHeader")
+                       .header("Foo", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .run()
+                       .assertBody().is("['bar|baz','bar|baz']");
+       }
+
+       @Test
        public void h09_headers_nullHeader() throws Exception {
                MockRestClient
                        .create(A.class)
@@ -1722,6 +1733,31 @@ public class RestClientTest {
        }
 
        @Test
+       public void i03a_query_withSchemaAndSupplier() throws Exception {
+               TestSupplier s = TestSupplier.of(AList.of("foo","bar"));
+
+               RestClient rc = MockRestClient
+                       .create(A.class)
+                       .simpleJson()
+                       .query("Foo", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .build();
+
+               rc
+                       .get("/checkQuery")
+                       .query("Bar", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .run()
+                       .assertBody().is("Foo=foo%7Cbar&Bar=foo%7Cbar");
+
+               s.set(new String[]{"bar","baz"});
+
+               rc
+                       .get("/checkQuery")
+                       .query("Bar", s, HttpPartSchema.T_ARRAY_PIPES)
+                       .run()
+                       .assertBody().is("Foo=bar%7Cbaz&Bar=bar%7Cbaz");
+       }
+
+       @Test
        public void i04_query_withNull() throws Exception {
                MockRestClient
                        .create(A.class)
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
index e401ecb..048ae17 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock2/MockServletRequest.java
@@ -123,6 +123,7 @@ public class MockServletRequest implements 
HttpServletRequest {
                        String qs = uri.substring(uri.indexOf('?') + 1);
                        if (qs.indexOf('#') != -1)
                                qs = qs.substring(0, qs.indexOf('#'));
+                       queryString = qs;
                        queryDataMap.putAll(RestUtils.parseQuery(qs));
                }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
index fe92193..31d9df7 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
@@ -286,7 +286,7 @@ public final class RestUtils {
                try {
                        Map<String,String[]> m = map;
                        if (m == null)
-                               m = new TreeMap<>();
+                               m = new LinkedHashMap<>();
 
                        if (qs == null || ((qs instanceof CharSequence) && 
isEmpty(qs)))
                                return m;

Reply via email to