View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.juneau.rest.annotation;
18  
19  import org.apache.juneau.*;
20  import org.apache.juneau.collections.*;
21  import org.apache.juneau.http.annotation.*;
22  import org.apache.juneau.rest.mock.*;
23  import org.junit.jupiter.api.*;
24  
25  class Rest_AllowContentParam_Test extends TestBase {
26  
27  	//------------------------------------------------------------------------------------------------------------------
28  	// @Rest(disableBodyParam)
29  	//------------------------------------------------------------------------------------------------------------------
30  
31  	@Rest(disableContentParam="false")
32  	public static class A1 {
33  		@RestOp
34  		public JsonMap put(@Content JsonMap body) {
35  			return body;
36  		}
37  	}
38  	@Rest(disableContentParam="true")
39  	public static class A2 {
40  		@RestOp
41  		public JsonMap put(@Content JsonMap body) {
42  			return body;
43  		}
44  	}
45  	@Rest(disableContentParam="true")
46  	public static class A3 extends A1 {}
47  
48  	@Rest(disableContentParam="false")
49  	public static class A4 extends A2 {}
50  
51  	@Test void a01_basic() throws Exception {
52  		var a1 = MockRestClient.build(A1.class);
53  		a1.put("/", "{a:'b'}").run().assertContent("{a:'b'}");
54  		a1.put("/?content=(c=d)", "{a:'b'}").run().assertContent("{c:'d'}");
55  
56  		var a2 = MockRestClient.build(A2.class);
57  		a2.put("/", "{a:'b'}").run().assertContent("{a:'b'}");
58  		a2.put("/?content=(c=d)", "{a:'b'}").run().assertContent("{a:'b'}");
59  
60  		var a3 = MockRestClient.build(A3.class);
61  		a3.put("/", "{a:'b'}").run().assertContent("{a:'b'}");
62  		a3.put("/?content=(c=d)", "{a:'b'}").run().assertContent("{a:'b'}");
63  
64  		var a4 = MockRestClient.build(A4.class);
65  		a4.put("/", "{a:'b'}").run().assertContent("{a:'b'}");
66  		a4.put("/?content=(c=d)", "{a:'b'}").run().assertContent("{c:'d'}");
67  	}
68  }