blob: 689cbd40cf31ec0c0ca8180d9699cbb7b3efa91b [file] [log] [blame]
// ***************************************************************************************************************************
// * 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.headers;
import static org.apache.juneau.rest.testutils.TestUtils.*;
import org.apache.juneau.*;
import org.apache.juneau.dto.swagger.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.http.*;
import org.apache.juneau.http.annotation.Header;
import org.apache.juneau.plaintext.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.rest.mock2.*;
import org.junit.*;
import org.junit.runners.*;
/**
* Tests various aspects of headers in general.
*/
@SuppressWarnings({})
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class HeadersTest {
//====================================================================================================
// HTTP 1.1 headers
//====================================================================================================
@Rest(
serializers=AnythingSerializer.class,
parsers=AnythingParser.class,
encoders=AnythingEncoder.class,
allowedHeaderParams="*"
)
public static class A {
@RestMethod
public String accept(Accept accept) {
return accept.toString();
}
@RestMethod
public String acceptCharset(AcceptCharset acceptCharset) {
return acceptCharset.toString();
}
@RestMethod
public String acceptEncoding(AcceptEncoding acceptEncoding) {
return acceptEncoding.toString();
}
@RestMethod
public String acceptLanguage(AcceptLanguage acceptLanguage) {
return acceptLanguage.toString();
}
@RestMethod
public String authorization(Authorization authorization) {
return authorization.toString();
}
@RestMethod
public String cacheControl(CacheControl cacheControl) {
return cacheControl.toString();
}
@RestMethod
public String connection(Connection connection) {
return connection.toString();
}
@RestMethod
public String contentLength(ContentLength contentLength) {
return contentLength.toString();
}
@RestMethod
public String contentType(ContentType contentType) {
return contentType.toString();
}
@RestMethod
public String date(org.apache.juneau.http.Date date) {
return date.toString();
}
@RestMethod
public String expect(Expect expect) {
return expect.toString();
}
@RestMethod
public String from(From from) {
return from.toString();
}
@RestMethod
public String host(Host host) {
return host.toString();
}
@RestMethod
public String ifMatch(IfMatch ifMatch) {
return ifMatch.toString();
}
@RestMethod
public String ifModifiedSince(IfModifiedSince ifModifiedSince) {
return ifModifiedSince.toString();
}
@RestMethod
public String ifNoneMatch(IfNoneMatch ifNoneMatch) {
return ifNoneMatch.toString();
}
@RestMethod
public String ifRange(IfRange ifRange) {
return ifRange.toString();
}
@RestMethod
public String ifUnmodifiedSince(IfUnmodifiedSince ifUnmodifiedSince) {
return ifUnmodifiedSince.toString();
}
@RestMethod
public String maxForwards(MaxForwards maxForwards) {
return maxForwards.toString();
}
@RestMethod
public String pragma(Pragma pragma) {
return pragma.toString();
}
@RestMethod
public String proxyAuthorization(ProxyAuthorization proxyAuthorization) {
return proxyAuthorization.toString();
}
@RestMethod
public String range(Range range) {
return range.toString();
}
@RestMethod
public String referer(Referer referer) {
return referer.toString();
}
@RestMethod
public String te(TE te) {
return te.toString();
}
@RestMethod
public String upgrade(Upgrade upgrade) {
return upgrade.toString();
}
@RestMethod
public String userAgent(UserAgent userAgent) {
return userAgent.toString();
}
@RestMethod
public String warning(Warning warning) {
return warning.toString();
}
}
private static MockRest a = MockRest.build(A.class);
public static class AnythingSerializer extends PlainTextSerializer {
public AnythingSerializer(PropertyStore ps) {
super(ps, "text/plain", "*/*");
}
}
public static class AnythingParser extends PlainTextParser {
public AnythingParser(PropertyStore ps) {
super(ps, "*/*");
}
}
public static class AnythingEncoder extends IdentityEncoder {
@Override /* ConfigEncoder */
public String[] getCodings() {
return new String[]{"*"};
}
}
@Test
public void a01a_accept() throws Exception {
a.get("/accept").accept("text/foo").execute().assertBody("text/foo");
a.get("/accept").accept("text/foo+bar").execute().assertBody("text/foo+bar");
a.get("/accept").accept("text/*").execute().assertBody("text/*");
a.get("/accept").accept("*/foo").execute().assertBody("*/foo");
}
@Test
public void a01b_accept_qValues() throws Exception {
a.get("/accept").accept("text/foo;q=1.0").execute().assertBody("text/foo");
a.get("/accept").accept("text/foo;q=0.9").execute().assertBody("text/foo;q=0.9");
a.get("/accept").accept("text/foo;x=X;q=0.9;y=Y").execute().assertBody("text/foo;x=X;q=0.9;y=Y");
}
@Test
public void a01b_accept_query() throws Exception {
a.get("/accept?Accept=text/foo").execute().assertBody("text/foo");
}
@Test
public void a02a_acceptCharset() throws Exception {
a.get("/acceptCharset").acceptCharset("UTF-8").execute().assertBody("UTF-8");
}
@Test
public void a02b_acceptCharset_query() throws Exception {
a.get("/acceptCharset?Accept-Charset=UTF-8").execute().assertBody("UTF-8");
}
@Test
public void a03a_acceptEncoding() throws Exception {
a.get("/acceptEncoding").acceptEncoding("foo").execute().assertBody("foo");
a.get("/acceptEncoding").acceptEncoding("*").execute().assertBody("*");
}
@Test
public void a03b_acceptEncoding_query() throws Exception {
a.get("/acceptEncoding?Accept-Encoding=*").execute().assertBody("*");
}
@Test
public void a04a_acceptLanguage() throws Exception {
a.get("/acceptLanguage").acceptLanguage("foo").execute().assertBody("foo");
}
@Test
public void a04b_acceptLanguage_query() throws Exception {
a.get("/acceptLanguage?Accept-Language=foo").acceptLanguage("foo").execute().assertBody("foo");
}
@Test
public void a05a_authorization() throws Exception {
a.get("/authorization").authorization("foo").execute().assertBody("foo");
}
@Test
public void a05b_authorization_query() throws Exception {
a.get("/authorization?Authorization=foo").execute().assertBody("foo");
}
@Test
public void a06a_cacheControl() throws Exception {
a.get("/cacheControl").cacheControl("foo").execute().assertBody("foo");
}
@Test
public void a06b_cacheControl_query() throws Exception {
a.get("/cacheControl?Cache-Control=foo").execute().assertBody("foo");
}
@Test
public void a07a_connection() throws Exception {
a.get("/connection").connection("foo").execute().assertBody("foo");
}
@Test
public void a07b_connection_query() throws Exception {
a.get("/connection?Connection=foo").execute().assertBody("foo");
}
@Test
public void a08a_contentLength() throws Exception {
a.get("/contentLength").contentLength(0).execute().assertBody("0");
}
@Test
public void a08b_contentLength_query() throws Exception {
a.get("/contentLength?Content-Length=0").execute().assertBody("0");
}
@Test
public void a09a_contentType() throws Exception {
a.get("/contentType").contentType("text/foo").execute().assertBody("text/foo");
}
@Test
public void a09b_contentType_query() throws Exception {
a.get("/contentType?Content-Type=text/foo").execute().assertBody("text/foo");
}
@Test
public void a10a_date() throws Exception {
a.get("/date").date("Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a10b_date_query() throws Exception {
a.get("/date?Date=Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a11a_expect() throws Exception {
a.get("/expect").expect("100-continue").execute().assertBody("100-continue");
}
@Test
public void a11b_expect_query() throws Exception {
a.get("/expect?Expect=100-continue").execute().assertBody("100-continue");
}
@Test
public void a12a_from() throws Exception {
a.get("/from").from("foo").execute().assertBody("foo");
}
public void a12b_from_query() throws Exception {
a.get("/from?From=foo").execute().assertBody("foo");
}
@Test
public void a13a_host() throws Exception {
a.get("/host").host("localhost").execute().assertBody("localhost");
}
@Test
public void a13b_host_query() throws Exception {
a.get("/host?Host=localhost").execute().assertBody("localhost");
}
@Test
public void a14a_ifMatch() throws Exception {
a.get("/ifMatch").ifMatch("foo").execute().assertBody("\"foo\"");
a.get("/ifMatch").ifMatch("\"foo\"").execute().assertBody("\"foo\"");
a.get("/ifMatch").ifMatch("W/\"foo\"").execute().assertBody("W/\"foo\"");
a.get("/ifMatch").ifMatch("W/\"foo\",\"bar\"").execute().assertBody("W/\"foo\", \"bar\"");
}
@Test
public void a14b_ifMatch_query() throws Exception {
a.get("/ifMatch?If-Match=foo").execute().assertBody("\"foo\"");
}
@Test
public void a15a_ifModifiedSince() throws Exception {
a.get("/ifModifiedSince").ifModifiedSince("Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a15b_ifModifiedSince_query() throws Exception {
a.get("/ifModifiedSince?If-Modified-Since=Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a16a_ifNoneMatch() throws Exception {
a.get("/ifNoneMatch").ifNoneMatch("foo").execute().assertBody("\"foo\"");
a.get("/ifNoneMatch").ifNoneMatch("\"foo\"").execute().assertBody("\"foo\"");
a.get("/ifNoneMatch").ifNoneMatch("W/\"foo\"").execute().assertBody("W/\"foo\"");
a.get("/ifNoneMatch").ifNoneMatch("W/\"foo\",\"bar\"").execute().assertBody("W/\"foo\", \"bar\"");
}
@Test
public void a16b_ifNoneMatch_query() throws Exception {
a.get("/ifNoneMatch?If-None-Match=foo").execute().assertBody("\"foo\"");
}
@Test
public void a17a_ifRange() throws Exception {
a.get("/ifRange").ifRange("foo").execute().assertBody("foo");
}
@Test
public void a17b_ifRange_query() throws Exception {
a.get("/ifRange?If-Range=foo").execute().assertBody("foo");
}
@Test
public void a18a_ifUnmodifiedSince() throws Exception {
a.get("/ifUnmodifiedSince").ifUnmodifiedSince("Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a18b_ifUnmodifiedSince_query() throws Exception {
a.get("/ifUnmodifiedSince?If-Unmodified-Since=Wed, 21 Oct 2015 07:28:00 GMT").execute().assertBody("Wed, 21 Oct 2015 07:28:00 GMT");
}
@Test
public void a19a_maxForwards() throws Exception {
a.get("/maxForwards").maxForwards(123).execute().assertBody("123");
}
@Test
public void a19b_maxForwards_query() throws Exception {
a.get("/maxForwards?Max-Forwards=123").execute().assertBody("123");
}
@Test
public void a20a_pragma() throws Exception {
a.get("/pragma").pragma("foo").execute().assertBody("foo");
}
@Test
public void a20b_pragma_query() throws Exception {
a.get("/pragma?Pragma=foo").execute().assertBody("foo");
}
@Test
public void a21a_proxyAuthorization() throws Exception {
a.get("/proxyAuthorization").proxyAuthorization("foo").execute().assertBody("foo");
}
@Test
public void a21b_proxyAuthorization_query() throws Exception {
a.get("/proxyAuthorization?Proxy-Authorization=foo").execute().assertBody("foo");
}
@Test
public void a22a_range() throws Exception {
a.get("/range").range("foo").execute().assertBody("foo");
}
@Test
public void a22b_range_query() throws Exception {
a.get("/range?Range=foo").execute().assertBody("foo");
}
@Test
public void a23a_referer() throws Exception {
a.get("/referer").referer("foo").execute().assertBody("foo");
}
@Test
public void a23b_referer_query() throws Exception {
a.get("/referer?Referer=foo").execute().assertBody("foo");
}
@Test
public void a24a_te() throws Exception {
a.get("/te").te("foo").execute().assertBody("foo");
}
@Test
public void a24b_te_query() throws Exception {
a.get("/te?TE=foo").execute().assertBody("foo");
}
@Test
public void a25a_upgrade() throws Exception {
a.get("/upgrade").upgrade("foo").execute().assertBody("foo");
}
@Test
public void a25b_upgrade_query() throws Exception {
a.get("/upgrade?Upgrade=foo").execute().assertBody("foo");
}
@Test
public void a26a_userAgent() throws Exception {
a.get("/userAgent").userAgent("foo").execute().assertBody("foo");
}
@Test
public void a26b_userAgent_query() throws Exception {
a.get("/userAgent?User-Agent=foo").execute().assertBody("foo");
}
@Test
public void a27a_warning() throws Exception {
a.get("/warning").warning("foo").execute().assertBody("foo");
}
@Test
public void a27b_warning_query() throws Exception {
a.get("/warning?Warning=foo").execute().assertBody("foo");
}
//====================================================================================================
// Custom header.
//====================================================================================================
@Rest(
paramResolvers=CustomHeaderParam.class,
allowedHeaderParams="Custom"
)
public static class B {
@RestMethod
public String customHeader(CustomHeader customHeader) {
return customHeader.toString();
}
}
static MockRest b = MockRest.build(B.class, null);
public static class CustomHeaderParam extends RestMethodParam {
public CustomHeaderParam() {
super(RestParamType.HEADER, "Custom", CustomHeader.class);
}
@Override
public Object resolve(RestRequest req, RestResponse res) throws Exception {
return new CustomHeader(req.getHeader("Custom"));
}
}
public static class CustomHeader {
public String value;
public CustomHeader(String value) {
this.value = value;
}
@Override
public String toString() {
return value;
}
}
@Test
public void b01a_customHeader() throws Exception {
b.get("/customHeader").header("Custom", "foo").execute().assertBody("foo");
}
@Test
public void b01b_customHeader_query() throws Exception {
b.get("/customHeader?Custom=foo").execute().assertBody("foo");
}
//====================================================================================================
// Default values - Default request headers
//====================================================================================================
@Rest
public static class C {
@RestMethod(defaultRequestHeaders={"H1:1","H2=2"," H3 : 3 "})
public ObjectMap c(RequestHeaders headers) {
return new ObjectMap()
.append("h1", headers.getString("H1"))
.append("h2", headers.getString("H2"))
.append("h3", headers.getString("H3"));
}
}
static MockRest c = MockRest.build(C.class, null);
@Test
public void c01_defaultRequestHeaders_default() throws Exception {
c.get("/c").execute().assertBody("{h1:'1',h2:'2',h3:'3'}");
}
@Test
public void c02_defaultRequestHeaders_override() throws Exception {
c.get("/c").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void c03_defaultRequestHeaders_override_caseInsensitive() throws Exception {
c.get("/c").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
//====================================================================================================
// Default values - Default request headers, case-insensitive matching
//====================================================================================================
@Rest
public static class D {
@RestMethod(defaultRequestHeaders={"H1:1","H2=2"," H3 : 3 "})
public ObjectMap d(RequestHeaders headers) {
return new ObjectMap()
.append("h1", headers.getString("h1"))
.append("h2", headers.getString("h2"))
.append("h3", headers.getString("h3"));
}
}
static MockRest d = MockRest.build(D.class, null);
@Test
public void d01_defaultRequestHeadersCaseInsensitive_default() throws Exception {
d.get("/d").execute().assertBody("{h1:'1',h2:'2',h3:'3'}");
}
@Test
public void d02_defaultRequestHeadersCaseInsensitive_override() throws Exception {
d.get("/d").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void d03_defaultRequestHeadersCaseInsensitive_override_caseInsensitive() throws Exception {
d.get("/d").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
//====================================================================================================
// Default values - Annotated headers.
//====================================================================================================
@Rest
public static class E {
@RestMethod
public ObjectMap e(@Header(name="H1") String h1, @Header("H2") String h2, @Header("H3") String h3) {
return new ObjectMap()
.append("h1", h1)
.append("h2", h2)
.append("h3", h3);
}
}
static MockRest e = MockRest.build(E.class, null);
@Test
public void e01_annotatedHeaders_default() throws Exception {
e.get("/e").execute().assertBody("{h1:null,h2:null,h3:null}");
}
@Test
public void e02_annotatedHeaders_override() throws Exception {
e.get("/e").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void e03_annotatedHeaders_override_caseInsensitive() throws Exception {
e.get("/e").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
//====================================================================================================
// Default values - Annotated headers, case-insensitive matching.
//====================================================================================================
@Rest
public static class F {
@RestMethod
public ObjectMap f(@Header("h1") String h1, @Header("h2") String h2, @Header("h3") String h3) {
return new ObjectMap()
.append("h1", h1)
.append("h2", h2)
.append("h3", h3);
}
}
static MockRest f = MockRest.build(F.class, null);
@Test
public void f01_annotatedHeadersCaseInsensitive_default() throws Exception {
f.get("/f").execute().assertBody("{h1:null,h2:null,h3:null}");
}
@Test
public void f02_annotatedHeadersCaseInsensitive_override() throws Exception {
f.get("/f").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void f03_annotatedHeadersCaseInsensitive_override_caseInsensitive() throws Exception {
f.get("/f").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
//====================================================================================================
// Default values - Annotated headers with default values.
//====================================================================================================
@Rest
public static class G {
@RestMethod
public ObjectMap g(@Header(name="h1",_default="1") String h1, @Header(name="h2",_default="2") String h2, @Header(name="h3",_default="3") String h3) {
return new ObjectMap()
.append("h1", h1)
.append("h2", h2)
.append("h3", h3);
}
}
static MockRest g = MockRest.build(G.class, null);
@Test
public void g01_annotatedHeadersDefault_default() throws Exception {
g.get("/g").execute().assertBody("{h1:'1',h2:'2',h3:'3'}");
}
@Test
public void g02_annotatedHeadersDefault_override() throws Exception {
g.get("/g").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void g03_annotatedHeadersDefault_override_caseInsensitive() throws Exception {
g.get("/g").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Rest
public static class GB {
@RestMethod
public ObjectMap g(@Header(value="h1",_default="1") String h1, @Header(value="h2",_default="2") String h2, @Header(value="h3",_default="3") String h3) {
return new ObjectMap()
.append("h1", h1)
.append("h2", h2)
.append("h3", h3);
}
}
static MockRest gb = MockRest.build(GB.class, null);
@Test
public void gb01_annotatedHeadersDefault_default() throws Exception {
gb.get("/g").execute().assertBody("{h1:'1',h2:'2',h3:'3'}");
}
@Test
public void gb02_annotatedHeadersDefault_override() throws Exception {
gb.get("/g").header("H1",4).header("H2",5).header("H3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void gb03_annotatedHeadersDefault_override_caseInsensitive() throws Exception {
gb.get("/g").header("h1",4).header("h2",5).header("h3",6).execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
//====================================================================================================
// Default values - Annotated headers with default values and default request headers.
//====================================================================================================
@Rest
public static class H {
@RestMethod(defaultRequestHeaders={"H1:1","H2=2"," H3 : 3 "})
public ObjectMap h(@Header(value="h1",_default="4") String h1, @Header(value="h2",_default="5") String h2, @Header(value="h3",_default="6") String h3) {
return new ObjectMap()
.append("h1", h1)
.append("h2", h2)
.append("h3", h3);
}
}
static MockRest h = MockRest.build(H.class, null);
@Test
public void h01_annotatedAndDefaultHeaders_default() throws Exception {
h.get("/h").execute().assertBody("{h1:'4',h2:'5',h3:'6'}");
}
@Test
public void h02_annotatedAndDefaultHeaders_override() throws Exception {
h.get("/h").header("H1",7).header("H2",8).header("H3",9).execute().assertBody("{h1:'7',h2:'8',h3:'9'}");
}
@Test
public void h03_annotatedAndDefaultHeaders_override_caseInsensitive() throws Exception {
h.get("/h").header("h1",7).header("h2",8).header("h3",9).execute().assertBody("{h1:'7',h2:'8',h3:'9'}");
}
//====================================================================================================
// Swagger on default headers.
//====================================================================================================
Swagger sa = getSwagger(A.class);
@Test
public void sa01_accept() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/accept","get","header","Accept");
assertObjectEquals("{'in':'header',name:'Accept',type:'string'}", pi);
}
@Test
public void sa02_acceptCharset() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/acceptCharset","get","header","Accept-Charset");
assertObjectEquals("{'in':'header',name:'Accept-Charset',type:'string'}", pi);
}
@Test
public void sa03_acceptEncoding() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/acceptEncoding","get","header","Accept-Encoding");
assertObjectEquals("{'in':'header',name:'Accept-Encoding',type:'string'}", pi);
}
@Test
public void sa04_acceptLanguage() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/acceptLanguage","get","header","Accept-Language");
assertObjectEquals("{'in':'header',name:'Accept-Language',type:'string'}", pi);
}
@Test
public void sa05_authorization() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/authorization","get","header","Authorization");
assertObjectEquals("{'in':'header',name:'Authorization',type:'string'}", pi);
}
@Test
public void sa06_cacheControl() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/cacheControl","get","header","Cache-Control");
assertObjectEquals("{'in':'header',name:'Cache-Control',type:'string'}", pi);
}
@Test
public void sa07_connection() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/connection","get","header","Connection");
assertObjectEquals("{'in':'header',name:'Connection',type:'string'}", pi);
}
@Test
public void sa08_contentLength() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/contentLength","get","header","Content-Length");
assertObjectEquals("{'in':'header',name:'Content-Length',type:'integer',format:'int64'}", pi);
}
@Test
public void sa09_contentType() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/contentType","get","header","Content-Type");
assertObjectEquals("{'in':'header',name:'Content-Type',type:'string'}", pi);
}
@Test
public void sa10_date() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/date","get","header","Date");
assertObjectEquals("{'in':'header',name:'Date',type:'string'}", pi);
}
@Test
public void sa11_expect() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/expect","get","header","Expect");
assertObjectEquals("{'in':'header',name:'Expect',type:'string'}", pi);
}
@Test
public void sa12_() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/from","get","header","From");
assertObjectEquals("{'in':'header',name:'From',type:'string'}", pi);
}
@Test
public void sa13_host() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/host","get","header","Host");
assertObjectEquals("{'in':'header',name:'Host',type:'string'}", pi);
}
@Test
public void sa14_ifMatch() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/ifMatch","get","header","If-Match");
assertObjectEquals("{'in':'header',name:'If-Match',type:'string'}", pi);
}
@Test
public void sa15_ifModifiedSince() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/ifModifiedSince","get","header","If-Modified-Since");
assertObjectEquals("{'in':'header',name:'If-Modified-Since',type:'string'}", pi);
}
@Test
public void sa16_ifNoneMatch() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/ifNoneMatch","get","header","If-None-Match");
assertObjectEquals("{'in':'header',name:'If-None-Match',type:'string'}", pi);
}
@Test
public void sa17_ifRange() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/ifRange","get","header","If-Range");
assertObjectEquals("{'in':'header',name:'If-Range',type:'string'}", pi);
}
@Test
public void sa18_ifUnmodifiedSince() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/ifUnmodifiedSince","get","header","If-Unmodified-Since");
assertObjectEquals("{'in':'header',name:'If-Unmodified-Since',type:'string'}", pi);
}
@Test
public void sa19_maxForwards() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/maxForwards","get","header","Max-Forwards");
assertObjectEquals("{'in':'header',name:'Max-Forwards',type:'integer',format:'int32'}", pi);
}
@Test
public void sa20_pragma() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/pragma","get","header","Pragma");
assertObjectEquals("{'in':'header',name:'Pragma',type:'string'}", pi);
}
@Test
public void sa21_proxyAuthorization() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/proxyAuthorization","get","header","Proxy-Authorization");
assertObjectEquals("{'in':'header',name:'Proxy-Authorization',type:'string'}", pi);
}
@Test
public void sa22_range() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/range","get","header","Range");
assertObjectEquals("{'in':'header',name:'Range',type:'string'}", pi);
}
@Test
public void sa23_referer() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/referer","get","header","Referer");
assertObjectEquals("{'in':'header',name:'Referer',type:'string'}", pi);
}
@Test
public void sa24_te() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/te","get","header","TE");
assertObjectEquals("{'in':'header',name:'TE',type:'string'}", pi);
}
@Test
public void sa25_upgrade() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/upgrade","get","header","Upgrade");
assertObjectEquals("{'in':'header',name:'Upgrade',type:'array',items:{type:'string'},collectionFormat:'csv'}", pi);
}
@Test
public void sa26_userAgent() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/userAgent","get","header","User-Agent");
assertObjectEquals("{'in':'header',name:'User-Agent',type:'string'}", pi);
}
@Test
public void sa27_warning() throws Exception {
ParameterInfo pi = sa.getParameterInfo("/warning","get","header","Warning");
assertObjectEquals("{'in':'header',name:'Warning',type:'string'}", pi);
}
}