1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.utils;
18
19 import static org.apache.juneau.internal.HttpUtils.*;
20 import static org.junit.jupiter.api.Assertions.*;
21
22 import org.apache.juneau.*;
23 import org.junit.jupiter.api.*;
24
25 class HttpUtilsTest extends TestBase {
26
27 public interface A {
28 void doGet();
29 void doGET();
30 void doPOST();
31 void doFOO();
32 void getFoo();
33 void postFoo();
34 void get();
35 void post();
36 void createFoo();
37 }
38
39
40
41
42
43 @Test void a01_getHttpMethod_detect_nodefault() throws Exception {
44 assertEquals("GET", detectHttpMethod(A.class.getMethod("doGet"), true, null));
45 assertEquals("GET", detectHttpMethod(A.class.getMethod("doGET"), true, null));
46 assertEquals("POST", detectHttpMethod(A.class.getMethod("doPOST"), true, null));
47 assertEquals(null, detectHttpMethod(A.class.getMethod("doFOO"), true, null));
48 assertEquals("GET", detectHttpMethod(A.class.getMethod("getFoo"), true, null));
49 assertEquals("POST", detectHttpMethod(A.class.getMethod("postFoo"), true, null));
50 assertEquals("GET", detectHttpMethod(A.class.getMethod("get"), true, null));
51 assertEquals("POST", detectHttpMethod(A.class.getMethod("post"), true, null));
52 assertEquals(null, detectHttpMethod(A.class.getMethod("createFoo"), true, null));
53 }
54
55 @Test void a02_getHttpMethod_detect_default() throws Exception {
56 assertEquals("GET", detectHttpMethod(A.class.getMethod("doGet"), true, "DELETE"));
57 assertEquals("GET", detectHttpMethod(A.class.getMethod("doGET"), true, "DELETE"));
58 assertEquals("POST", detectHttpMethod(A.class.getMethod("doPOST"), true, "DELETE"));
59 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("doFOO"), true, "DELETE"));
60 assertEquals("GET", detectHttpMethod(A.class.getMethod("getFoo"), true, "DELETE"));
61 assertEquals("POST", detectHttpMethod(A.class.getMethod("postFoo"), true, "DELETE"));
62 assertEquals("GET", detectHttpMethod(A.class.getMethod("get"), true, "DELETE"));
63 assertEquals("POST", detectHttpMethod(A.class.getMethod("post"), true, "DELETE"));
64 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("createFoo"), true, "DELETE"));
65 }
66
67 @Test void a03_getHttpMethod_nodetect_nodefault() throws Exception {
68 assertEquals(null, detectHttpMethod(A.class.getMethod("doGet"), false, null));
69 assertEquals(null, detectHttpMethod(A.class.getMethod("doGET"), false, null));
70 assertEquals(null, detectHttpMethod(A.class.getMethod("doPOST"), false, null));
71 assertEquals(null, detectHttpMethod(A.class.getMethod("doFOO"), false, null));
72 assertEquals(null, detectHttpMethod(A.class.getMethod("getFoo"), false, null));
73 assertEquals(null, detectHttpMethod(A.class.getMethod("postFoo"), false, null));
74 assertEquals(null, detectHttpMethod(A.class.getMethod("get"), false, null));
75 assertEquals(null, detectHttpMethod(A.class.getMethod("post"), false, null));
76 assertEquals(null, detectHttpMethod(A.class.getMethod("createFoo"), false, null));
77 }
78
79 @Test void a04_getHttpMethod_nodetect_default() throws Exception {
80 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("doGet"), false, "DELETE"));
81 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("doGET"), false, "DELETE"));
82 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("doPOST"), false, "DELETE"));
83 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("doFOO"), false, "DELETE"));
84 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("getFoo"), false, "DELETE"));
85 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("postFoo"), false, "DELETE"));
86 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("get"), false, "DELETE"));
87 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("post"), false, "DELETE"));
88 assertEquals("DELETE", detectHttpMethod(A.class.getMethod("createFoo"), false, "DELETE"));
89 }
90
91
92
93
94
95 public interface B1 {
96 void doGet();
97 void doGET();
98 void doPOST();
99 void doFOO();
100 void getFoo();
101 void postFoo();
102 void get();
103 void post();
104 void createFoo();
105 }
106
107 public interface B2 {
108 void doGet(int x, A y);
109 void doGET(int x, A y);
110 void doPOST(int x, A y);
111 void doFOO(int x, A y);
112 void getFoo(int x, A y);
113 void postFoo(int x, A y);
114 void get(int x, A y);
115 void post(int x, A y);
116 void createFoo(int x, A y);
117 }
118
119 @Test void a05_getHttpPath_noargs_detect() throws Exception {
120 assertEquals("/", detectHttpPath(B1.class.getMethod("doGet"), null));
121 assertEquals("/", detectHttpPath(B1.class.getMethod("doGET"), null));
122 assertEquals("/", detectHttpPath(B1.class.getMethod("doPOST"), null));
123 assertEquals("/doFOO", detectHttpPath(B1.class.getMethod("doFOO"), null));
124 assertEquals("/foo", detectHttpPath(B1.class.getMethod("getFoo"), null));
125 assertEquals("/foo", detectHttpPath(B1.class.getMethod("postFoo"), null));
126 assertEquals("/", detectHttpPath(B1.class.getMethod("get"), null));
127 assertEquals("/", detectHttpPath(B1.class.getMethod("post"), null));
128 assertEquals("/createFoo", detectHttpPath(B1.class.getMethod("createFoo"), null));
129 }
130
131 @Test void a06_getHttpPath_noargs_nodetect() throws Exception {
132 assertEquals("/doGet", detectHttpPath(B1.class.getMethod("doGet"), "get"));
133 assertEquals("/doGET", detectHttpPath(B1.class.getMethod("doGET"), "get"));
134 assertEquals("/doPOST", detectHttpPath(B1.class.getMethod("doPOST"), "get"));
135 assertEquals("/doFOO", detectHttpPath(B1.class.getMethod("doFOO"), "get"));
136 assertEquals("/foo", detectHttpPath(B1.class.getMethod("getFoo"), "get"));
137 assertEquals("/postFoo", detectHttpPath(B1.class.getMethod("postFoo"), "get"));
138 assertEquals("/", detectHttpPath(B1.class.getMethod("get"), "get"));
139 assertEquals("/post", detectHttpPath(B1.class.getMethod("post"), "get"));
140 assertEquals("/createFoo", detectHttpPath(B1.class.getMethod("createFoo"), "get"));
141 }
142
143 @Test void a07_getHttpPath_args_detect() throws Exception {
144 assertEquals("/", detectHttpPath(B2.class.getMethod("doGet",int.class,A.class), null));
145 assertEquals("/", detectHttpPath(B2.class.getMethod("doGET",int.class,A.class), null));
146 assertEquals("/", detectHttpPath(B2.class.getMethod("doPOST",int.class,A.class), null));
147 assertEquals("/doFOO", detectHttpPath(B2.class.getMethod("doFOO",int.class,A.class), null));
148 assertEquals("/foo", detectHttpPath(B2.class.getMethod("getFoo",int.class,A.class), null));
149 assertEquals("/foo", detectHttpPath(B2.class.getMethod("postFoo",int.class,A.class), null));
150 assertEquals("/", detectHttpPath(B2.class.getMethod("get",int.class,A.class), null));
151 assertEquals("/", detectHttpPath(B2.class.getMethod("post",int.class,A.class), null));
152 assertEquals("/createFoo", detectHttpPath(B2.class.getMethod("createFoo",int.class,A.class), null));
153 }
154
155 @Test void a08_getHttpPath_args_nodetect() throws Exception {
156 assertEquals("/doGet", detectHttpPath(B2.class.getMethod("doGet",int.class,A.class), "get"));
157 assertEquals("/doGET", detectHttpPath(B2.class.getMethod("doGET",int.class,A.class), "get"));
158 assertEquals("/doPOST", detectHttpPath(B2.class.getMethod("doPOST",int.class,A.class), "get"));
159 assertEquals("/doFOO", detectHttpPath(B2.class.getMethod("doFOO",int.class,A.class), "get"));
160 assertEquals("/foo", detectHttpPath(B2.class.getMethod("getFoo",int.class,A.class), "get"));
161 assertEquals("/postFoo", detectHttpPath(B2.class.getMethod("postFoo",int.class,A.class), "get"));
162 assertEquals("/", detectHttpPath(B2.class.getMethod("get",int.class,A.class), "get"));
163 assertEquals("/post", detectHttpPath(B2.class.getMethod("post",int.class,A.class), "get"));
164 assertEquals("/createFoo", detectHttpPath(B2.class.getMethod("createFoo",int.class,A.class), "get"));
165 }
166 }