1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.rest.annotation;
18
19 import org.apache.juneau.*;
20 import org.apache.juneau.http.annotation.*;
21 import org.apache.juneau.rest.*;
22 import org.apache.juneau.rest.mock.*;
23 import org.junit.jupiter.api.*;
24
25 class HasQuery_Test extends TestBase {
26
27
28
29
30
31 @Rest
32 public static class A {
33 @RestGet
34 public String a(RestRequest req, @HasQuery("p1") boolean p1, @HasQuery("p2") Boolean p2) {
35 var q = req.getQueryParams();
36 return "p1=["+p1+","+q.contains("p1")+"],p2=["+p2+","+q.contains("p2")+"]";
37 }
38 @RestPost
39 public String b(RestRequest req, @HasQuery("p1") boolean p1, @HasQuery("p2") Boolean p2) {
40 var q = req.getQueryParams();
41 return "p1=["+p1+","+q.contains("p1")+"],p2=["+p2+","+q.contains("p2")+"]";
42 }
43 }
44
45 @Test void a01_basic() throws Exception {
46 var a = MockRestClient.build(A.class);
47
48 a.get("/a?p1=p1&p2=2").run().assertContent("p1=[true,true],p2=[true,true]");
49 a.get("/a?p1&p2").run().assertContent("p1=[true,true],p2=[true,true]");
50 a.get("/a?p1=&p2=").run().assertContent("p1=[true,true],p2=[true,true]");
51 a.get("/a").run().assertContent("p1=[false,false],p2=[false,false]");
52 a.get("/a?p1").run().assertContent("p1=[true,true],p2=[false,false]");
53 a.get("/a?p1=").run().assertContent("p1=[true,true],p2=[false,false]");
54 a.get("/a?p2").run().assertContent("p1=[false,false],p2=[true,true]");
55 a.get("/a?p2=").run().assertContent("p1=[false,false],p2=[true,true]");
56 a.get("/a?p1=foo&p2").run().assertContent("p1=[true,true],p2=[true,true]");
57 a.get("/a?p1&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
58 String x1 = "a%2Fb%25c%3Dd+e";
59 a.get("/a?p1="+x1+"&p2=1").run().assertContent("p1=[true,true],p2=[true,true]");
60
61 a.post("/b?p1=p1&p2=2", null).run().assertContent("p1=[true,true],p2=[true,true]");
62 a.post("/b?p1&p2", null).run().assertContent("p1=[true,true],p2=[true,true]");
63 a.post("/b?p1=&p2=", null).run().assertContent("p1=[true,true],p2=[true,true]");
64 a.post("/b", null).run().assertContent("p1=[false,false],p2=[false,false]");
65 a.post("/b?p1", null).run().assertContent("p1=[true,true],p2=[false,false]");
66 a.post("/b?p1=", null).run().assertContent("p1=[true,true],p2=[false,false]");
67 a.post("/b?p2", null).run().assertContent("p1=[false,false],p2=[true,true]");
68 a.post("/b?p2=", null).run().assertContent("p1=[false,false],p2=[true,true]");
69 a.post("/b?p1=foo&p2", null).run().assertContent("p1=[true,true],p2=[true,true]");
70 a.post("/b?p1&p2=1", null).run().assertContent("p1=[true,true],p2=[true,true]");
71 String x2 = "a%2Fb%25c%3Dd+e";
72 a.post("/b?p1="+x2+"&p2=1", null).run().assertContent("p1=[true,true],p2=[true,true]");
73 }
74 }