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 {