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 e0e836a Tests.
e0e836a is described below
commit e0e836a260856c431a94daebc8b5783ee349023e
Author: JamesBognar <[email protected]>
AuthorDate: Sat May 12 22:10:16 2018 -0400
Tests.
---
.../org/apache/juneau/rest/test/QueryResource.java | 65 ----------------------
.../java/org/apache/juneau/rest/test/Root.java | 1 -
.../org/apache/juneau/rest/test/QueryTest.java | 60 --------------------
.../org/apache/juneau/rest/test/_TestSuite.java | 2 +-
.../juneau/rest/mock/MockServletRequest.java | 36 +++++++++---
.../org/apache/juneau/rest}/RestUtilsTest.java | 14 +++--
.../rest/annotation/QueryAnnotationTest.java | 62 +++++++++++++++++++++
7 files changed, 101 insertions(+), 139 deletions(-)
diff --git
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/QueryResource.java
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/QueryResource.java
deleted file mode 100644
index 08acf01..0000000
---
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/QueryResource.java
+++ /dev/null
@@ -1,65 +0,0 @@
-//
***************************************************************************************************************************
-// * 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.rest.test;
-
-import static org.apache.juneau.http.HttpMethodName.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.rest.*;
-import org.apache.juneau.rest.annotation.*;
-
-/**
- * JUnit automated testcase resource.
- */
-@RestResource(
- path="/testQuery"
-)
-public class QueryResource extends BasicRestServlet {
- private static final long serialVersionUID = 1L;
-
-
//====================================================================================================
- // Default values.
-
//====================================================================================================
-
- @RestMethod(name=GET, path="/defaultQuery",
defaultQuery={"f1:1","f2=2"," f3 : 3 "})
- public ObjectMap defaultQuery(RequestQuery query) {
- return new ObjectMap()
- .append("f1", query.getString("f1"))
- .append("f2", query.getString("f2"))
- .append("f3", query.getString("f3"));
- }
-
- @RestMethod(name=GET, path="/annotatedQuery")
- public ObjectMap annotatedQuery(@Query("f1") String f1, @Query("f2")
String f2, @Query("f3") String f3) {
- return new ObjectMap()
- .append("f1", f1)
- .append("f2", f2)
- .append("f3", f3);
- }
-
- @RestMethod(name=GET, path="/annotatedQueryDefault")
- public ObjectMap annotatedQueryDefault(@Query(value="f1",_default="1")
String f1, @Query(value="f2",_default="2") String f2,
@Query(value="f3",_default="3") String f3) {
- return new ObjectMap()
- .append("f1", f1)
- .append("f2", f2)
- .append("f3", f3);
- }
-
- @RestMethod(name=GET, path="/annotatedAndDefaultQuery",
defaultQuery={"f1:1","f2=2"," f3 : 3 "})
- public ObjectMap
annotatedAndDefaultQuery(@Query(value="f1",_default="4") String f1,
@Query(value="f2",_default="5") String f2, @Query(value="f3",_default="6")
String f3) {
- return new ObjectMap()
- .append("f1", f1)
- .append("f2", f2)
- .append("f3", f3);
- }
-}
diff --git
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
index b45068f..a2b2fc5 100644
---
a/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
+++
b/juneau-microservice/juneau-microservice-test/src/main/java/org/apache/juneau/rest/test/Root.java
@@ -56,7 +56,6 @@ import org.apache.juneau.rest.helper.*;
PathsResource.class,
PathVariablesResource.class,
PropertiesResource.class,
- QueryResource.class,
RequestBeanProxyResource.class,
RestClient2Resource.class,
RestHooksInitResource.class,
diff --git
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/QueryTest.java
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/QueryTest.java
deleted file mode 100644
index 2da01e2..0000000
---
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/QueryTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-//
***************************************************************************************************************************
-// * 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.rest.test;
-
-import static org.apache.juneau.rest.testutils.TestUtils.*;
-
-import org.apache.juneau.*;
-import org.apache.juneau.rest.client.*;
-import org.junit.*;
-
-/**
- * Tests client-side form posts.
- */
-public class QueryTest extends RestTestcase {
-
- private static String URL = "/testQuery";
- RestClient client = TestMicroservice.DEFAULT_CLIENT;
-
-
//====================================================================================================
- // Default values.
-
//====================================================================================================
-
- @Test
- public void defaultQuery() throws Exception {
- assertObjectEquals("{f1:'1',f2:'2',f3:'3'}", client.doGet(URL +
"/defaultQuery").getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/defaultQuery").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/defaultQuery").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- }
-
- @Test
- public void annotatedQuery() throws Exception {
- assertObjectEquals("{f1:null,f2:null,f3:null}",
client.doGet(URL + "/annotatedQuery").getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/annotatedQuery").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/annotatedQuery").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- }
-
- @Test
- public void annotatedQueryDefault() throws Exception {
- assertObjectEquals("{f1:'1',f2:'2',f3:'3'}", client.doGet(URL +
"/annotatedQueryDefault").getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/annotatedQueryDefault").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/annotatedQueryDefault").query("f1",4).query("f2",5).query("f3",6).getResponse(ObjectMap.class));
- }
-
- @Test
- public void annotatedAndDefaultQuery() throws Exception {
- assertObjectEquals("{f1:'4',f2:'5',f3:'6'}", client.doGet(URL +
"/annotatedAndDefaultQuery").getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'7',f2:'8',f3:'9'}", client.doGet(URL +
"/annotatedAndDefaultQuery").query("f1",7).query("f2",8).query("f3",9).getResponse(ObjectMap.class));
- assertObjectEquals("{f1:'7',f2:'8',f3:'9'}", client.doGet(URL +
"/annotatedAndDefaultQuery").query("f1",7).query("f2",8).query("f3",9).getResponse(ObjectMap.class));
- }
-}
diff --git
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java
index a952343..1aa882d 100644
---
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java
+++
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java
@@ -12,6 +12,7 @@
//
***************************************************************************************************************************
package org.apache.juneau.rest.test;
+import org.apache.juneau.rest.*;
import org.junit.*;
import org.junit.runner.*;
import org.junit.runners.*;
@@ -49,7 +50,6 @@ import org.junit.runners.Suite.*;
PathTest.class,
PathVariableTest.class,
PropertiesTest.class,
- QueryTest.class,
RequestBeanProxyTest.class,
RestClientTest.class,
RestUtilsTest.class,
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
index d18e88d..5f0a1fb 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
@@ -38,7 +38,7 @@ import org.apache.juneau.utils.*;
public class MockServletRequest implements HttpServletRequest {
private String method = "GET";
- private Map<String,String[]> parameterMap;
+ private Map<String,String[]> queryData;
private Map<String,String[]> formDataMap;
private Map<String,String[]> headerMap = new LinkedHashMap<>();
private Map<String,Object> attributeMap = new LinkedHashMap<>();
@@ -241,7 +241,7 @@ public class MockServletRequest implements
HttpServletRequest {
* @return This object (for method chaining).
*/
public MockServletRequest param(String name, String[] value) {
- this.parameterMap.put(name, value);
+ this.queryData.put(name, value);
return this;
}
@@ -253,7 +253,7 @@ public class MockServletRequest implements
HttpServletRequest {
* @return This object (for method chaining).
*/
public MockServletRequest param(String name, String value) {
- this.parameterMap.put(name, new String[] {value});
+ this.queryData.put(name, new String[] {value});
return this;
}
@@ -671,21 +671,21 @@ public class MockServletRequest implements
HttpServletRequest {
@Override /* HttpServletRequest */
public Map<String,String[]> getParameterMap() {
- if (parameterMap == null) {
+ if (queryData == null) {
try {
if ("POST".equalsIgnoreCase(method)) {
if (formDataMap != null)
- parameterMap = formDataMap;
+ queryData = formDataMap;
else
- parameterMap =
RestUtils.parseQuery(IOUtils.read(body));
+ queryData =
RestUtils.parseQuery(IOUtils.read(body));
} else {
- parameterMap =
RestUtils.parseQuery(getQueryString());
+ queryData =
RestUtils.parseQuery(getQueryString());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
- return parameterMap;
+ return queryData;
}
@Override /* HttpServletRequest */
@@ -1065,4 +1065,24 @@ public class MockServletRequest implements
HttpServletRequest {
formDataMap.put(key, existing);
return this;
}
+
+ /**
+ * Adds a query data entry to this request.
+ *
+ * @param key
+ * @param value
+ * @return This object (for method chaining).
+ */
+ public MockServletRequest query(String key, Object value) {
+ if (queryData == null)
+ queryData = new LinkedHashMap<>();
+ String s = asString(value);
+ String[] existing = queryData.get(key);
+ if (existing == null)
+ existing = new String[]{s};
+ else
+ existing = new
AList<>().appendAll(Arrays.asList(existing)).append(s).toArray(new String[0]);
+ queryData.put(key, existing);
+ return this;
+ }
}
diff --git
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/RestUtilsTest.java
similarity index 94%
rename from
juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
rename to
juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/RestUtilsTest.java
index 55334b1..6e25c3e 100644
---
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/RestUtilsTest.java
+++
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/RestUtilsTest.java
@@ -10,19 +10,25 @@
// * "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.rest.test;
+package org.apache.juneau.rest;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.rest.util.RestUtils.*;
+import static org.apache.juneau.rest.testutils.TestUtils.*;
import static org.junit.Assert.*;
import java.util.*;
-import org.apache.juneau.rest.testutils.*;
import org.apache.juneau.urlencoding.*;
import org.junit.*;
+import org.junit.runners.*;
-public class RestUtilsTest extends RestTestcase {
+/**
+ * Tests for the RestUtils class.
+ */
+@SuppressWarnings({"javadoc"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class RestUtilsTest {
//====================================================================================================
// decode(String)
@@ -230,7 +236,7 @@ public class RestUtilsTest extends RestTestcase {
String s = "?f1&f1&f2&f2=abc&f2=def&f2";
m = parseQuery(s);
- TestUtils.assertObjectEquals("{f1:null,f2:['abc','def']}", m);
+ assertObjectEquals("{f1:null,f2:['abc','def']}", m);
}
@Test
diff --git
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/QueryAnnotationTest.java
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/QueryAnnotationTest.java
index 260a021..0cddd77 100644
---
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/QueryAnnotationTest.java
+++
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/annotation/QueryAnnotationTest.java
@@ -16,6 +16,7 @@ import static org.apache.juneau.http.HttpMethodName.*;
import java.util.*;
+import org.apache.juneau.*;
import org.apache.juneau.httppart.*;
import org.apache.juneau.json.*;
import org.apache.juneau.rest.*;
@@ -177,4 +178,65 @@ public class QueryAnnotationTest {
c.request("GET",
"/ListOfBeans?x=(a=1,b=2,c=false)").execute().assertBody("[{a:'1',b:2,c:false}]");
c.request("GET",
"/ListOfBeans?x=(a=1,b=2,c=false)&x=(a=3,b=4,c=true)").execute().assertBody("[{a:'1',b:2,c:false},{a:'3',b:4,c:true}]");
}
+
+
//====================================================================================================
+ // Default values.
+
//====================================================================================================
+
+ @RestResource
+ public static class D {
+ @RestMethod(name=GET, path="/defaultQuery",
defaultQuery={"f1:1","f2=2"," f3 : 3 "})
+ public ObjectMap d01(RequestQuery query) {
+ return new ObjectMap()
+ .append("f1", query.getString("f1"))
+ .append("f2", query.getString("f2"))
+ .append("f3", query.getString("f3"));
+ }
+ @RestMethod(name=GET, path="/annotatedQuery")
+ public ObjectMap d02(@Query("f1") String f1, @Query("f2")
String f2, @Query("f3") String f3) {
+ return new ObjectMap()
+ .append("f1", f1)
+ .append("f2", f2)
+ .append("f3", f3);
+ }
+ @RestMethod(name=GET, path="/annotatedQueryDefault")
+ public ObjectMap d03(@Query(value="f1",_default="1") String f1,
@Query(value="f2",_default="2") String f2, @Query(value="f3",_default="3")
String f3) {
+ return new ObjectMap()
+ .append("f1", f1)
+ .append("f2", f2)
+ .append("f3", f3);
+ }
+ @RestMethod(name=GET, path="/annotatedAndDefaultQuery",
defaultQuery={"f1:1","f2=2"," f3 : 3 "})
+ public ObjectMap d04(@Query(value="f1",_default="4") String f1,
@Query(value="f2",_default="5") String f2, @Query(value="f3",_default="6")
String f3) {
+ return new ObjectMap()
+ .append("f1", f1)
+ .append("f2", f2)
+ .append("f3", f3);
+ }
+ }
+ static MockRest d = MockRest.create(D.class);
+
+ @Test
+ public void d01_defaultQuery() throws Exception {
+ d.request("GET",
"/defaultQuery").execute().assertBody("{f1:'1',f2:'2',f3:'3'}");
+ d.request("GET",
"/defaultQuery").query("f1",4).query("f2",5).query("f3",6).execute().assertBody("{f1:'4',f2:'5',f3:'6'}");
+ }
+
+ @Test
+ public void d02_annotatedQuery() throws Exception {
+ d.request("GET",
"/annotatedQuery").execute().assertBody("{f1:null,f2:null,f3:null}");
+ d.request("GET",
"/annotatedQuery").query("f1",4).query("f2",5).query("f3",6).execute().assertBody("{f1:'4',f2:'5',f3:'6'}");
+ }
+
+ @Test
+ public void d03_annotatedQueryDefault() throws Exception {
+ d.request("GET",
"/annotatedQueryDefault").execute().assertBody("{f1:'1',f2:'2',f3:'3'}");
+ d.request("GET",
"/annotatedQueryDefault").query("f1",4).query("f2",5).query("f3",6).execute().assertBody("{f1:'4',f2:'5',f3:'6'}");
+ }
+
+ @Test
+ public void d04_annotatedAndDefaultQuery() throws Exception {
+ d.request("GET",
"/annotatedAndDefaultQuery").execute().assertBody("{f1:'4',f2:'5',f3:'6'}");
+ d.request("GET",
"/annotatedAndDefaultQuery").query("f1",7).query("f2",8).query("f3",9).execute().assertBody("{f1:'7',f2:'8',f3:'9'}");
+ }
}
--
To stop receiving notification emails like this one, please contact
[email protected].