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.http.annotation.*;
21  import org.apache.juneau.json.*;
22  import org.apache.juneau.rest.mock.*;
23  import org.junit.jupiter.api.*;
24  
25  class Rest_AnnotationInheritance_Test extends TestBase {
26  
27  	//------------------------------------------------------------------------------------------------------------------
28  	// @Body on parameter
29  	//------------------------------------------------------------------------------------------------------------------
30  
31  	@Rest(serializers=Json5Serializer.class, parsers=JsonParser.class, defaultAccept="text/json")
32  	public interface IA {
33  		@RestPut String a(@Content String b);
34  		@RestGet String b(@Query("foo") String b);
35  		@RestGet String c(@Header("foo") String b);
36  	}
37  
38  	public static class A implements IA {
39  		@Override
40  		public String a(String b) {
41  			return b;
42  		}
43  		@Override
44  		public String b(String b) {
45  			return b;
46  		}
47  		@Override
48  		public String c(String b) {
49  			return b;
50  		}
51  	}
52  
53  	@Test void a01_inheritedFromInterface() throws Exception {
54  		var a = MockRestClient.build(A.class);
55  		a.put("/a", "foo").json().run().assertContent("'foo'");
56  		a.get("/b").queryData("foo", "bar").json().run().assertContent("'bar'");
57  		a.get("/c").header("foo", "bar").json().run().assertContent("'bar'");
58  	}
59  }