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;