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].

Reply via email to