public class MockHttpServletRequestBuilder extends Object implements ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>, Mergeable
MockHttpServletRequest
required as input to
perform requests in MockMvc
.
Application tests will typically access this builder through the static
factory methods in MockMvcRequestBuilders
.
This class is not open for extension. To apply custom initialization to
the created MockHttpServletRequest
, please use the
with(RequestPostProcessor)
extension point.
Modifier and Type | Method and Description |
---|---|
MockHttpServletRequestBuilder |
accept(MediaType... mediaTypes)
Set the 'Accept' header to the given media type(s).
|
MockHttpServletRequestBuilder |
accept(String... mediaTypes)
Set the 'Accept' header using raw String values, possibly not even well
formed (for testing purposes).
|
MockHttpServletRequest |
buildRequest(ServletContext servletContext)
Build a
MockHttpServletRequest . |
MockHttpServletRequestBuilder |
characterEncoding(String encoding)
Set the character encoding of the request.
|
MockHttpServletRequestBuilder |
content(byte[] content)
Set the request body.
|
MockHttpServletRequestBuilder |
content(String content)
Set the request body as a UTF-8 String.
|
MockHttpServletRequestBuilder |
contentType(MediaType contentType)
Set the 'Content-Type' header of the request.
|
MockHttpServletRequestBuilder |
contentType(String contentType)
Set the 'Content-Type' header of the request as a raw String value,
possibly not even well formed (for testing purposes).
|
MockHttpServletRequestBuilder |
contextPath(String contextPath)
Specify the portion of the requestURI that represents the context path.
|
MockHttpServletRequestBuilder |
cookie(Cookie... cookies)
Add the given cookies to the request.
|
protected MockHttpServletRequest |
createServletRequest(ServletContext servletContext)
Create a new
MockHttpServletRequest based on the supplied
ServletContext . |
MockHttpServletRequestBuilder |
flashAttr(String name,
Object value)
Set an "input" flash attribute.
|
MockHttpServletRequestBuilder |
flashAttrs(Map<String,Object> flashAttributes)
Set flash attributes.
|
MockHttpServletRequestBuilder |
header(String name,
Object... values)
Add a header to the request.
|
MockHttpServletRequestBuilder |
headers(HttpHeaders httpHeaders)
Add all headers to the request.
|
boolean |
isMergeEnabled()
Is merging enabled for this particular instance?
|
MockHttpServletRequestBuilder |
locale(Locale... locales)
Add the specified locales as preferred request locales.
|
MockHttpServletRequestBuilder |
locale(Locale locale)
Set the locale of the request, overriding any previous locales.
|
Object |
merge(Object parent)
Merges the properties of the "parent" RequestBuilder accepting values
only if not already set in "this" instance.
|
MockHttpServletRequestBuilder |
param(String name,
String... values)
Add a request parameter to
MockHttpServletRequest.getParameterMap() . |
MockHttpServletRequestBuilder |
params(MultiValueMap<String,String> params)
Variant of
param(String, String...) with a MultiValueMap . |
MockHttpServletRequestBuilder |
pathInfo(String pathInfo)
Specify the portion of the requestURI that represents the pathInfo.
|
MockHttpServletRequest |
postProcessRequest(MockHttpServletRequest request)
Apply request post processing.
|
MockHttpServletRequestBuilder |
principal(Principal principal)
Set the principal of the request.
|
MockHttpServletRequestBuilder |
queryParam(String name,
String... values)
Append to the query string and also add to the
request parameters map. |
MockHttpServletRequestBuilder |
queryParams(MultiValueMap<String,String> params)
Append to the query string and also add to the
params(MultiValueMap) request parameters} map. |
MockHttpServletRequestBuilder |
requestAttr(String name,
Object value)
Set a request attribute.
|
MockHttpServletRequestBuilder |
secure(boolean secure)
Set the secure property of the
ServletRequest indicating use of a
secure channel, such as HTTPS. |
MockHttpServletRequestBuilder |
servletPath(String servletPath)
Specify the portion of the requestURI that represents the path to which
the Servlet is mapped.
|
MockHttpServletRequestBuilder |
session(MockHttpSession session)
Set the HTTP session to use, possibly re-used across requests.
|
MockHttpServletRequestBuilder |
sessionAttr(String name,
Object value)
Set a session attribute.
|
MockHttpServletRequestBuilder |
sessionAttrs(Map<String,Object> sessionAttributes)
Set session attributes.
|
MockHttpServletRequestBuilder |
with(RequestPostProcessor postProcessor)
An extension point for further initialization of
MockHttpServletRequest
in ways not built directly into the MockHttpServletRequestBuilder . |
public MockHttpServletRequestBuilder contextPath(String contextPath)
In most cases, tests can be written by omitting the context path from the requestURI. This is because most applications don't actually depend on the name under which they're deployed. If specified here, the context path must start with a "/" and must not end with a "/".
HttpServletRequest.getContextPath()
public MockHttpServletRequestBuilder servletPath(String servletPath)
In most cases, tests can be written by omitting the servlet path from
the requestURI. This is because most applications don't actually depend
on the prefix to which a servlet is mapped. For example if a Servlet is
mapped to "/main/*"
, tests can be written with the requestURI
"/accounts/1"
as opposed to "/main/accounts/1"
.
If specified here, the servletPath must start with a "/" and must not
end with a "/".
HttpServletRequest.getServletPath()
public MockHttpServletRequestBuilder pathInfo(@Nullable String pathInfo)
If left unspecified (recommended), the pathInfo will be automatically derived by removing the contextPath and the servletPath from the requestURI and using any remaining part. If specified here, the pathInfo must start with a "/".
If specified, the pathInfo will be used as-is.
HttpServletRequest.getPathInfo()
public MockHttpServletRequestBuilder secure(boolean secure)
ServletRequest
indicating use of a
secure channel, such as HTTPS.secure
- whether the request is using a secure channelpublic MockHttpServletRequestBuilder characterEncoding(String encoding)
encoding
- the character encodingpublic MockHttpServletRequestBuilder content(byte[] content)
If content is provided and contentType(MediaType)
is set to
application/x-www-form-urlencoded
, the content will be parsed
and used to populate the request
parameters
map.
content
- the body contentpublic MockHttpServletRequestBuilder content(String content)
If content is provided and contentType(MediaType)
is set to
application/x-www-form-urlencoded
, the content will be parsed
and used to populate the request
parameters
map.
content
- the body contentpublic MockHttpServletRequestBuilder contentType(MediaType contentType)
If content is provided and contentType
is set to
application/x-www-form-urlencoded
, the content will be parsed
and used to populate the request
parameters
map.
contentType
- the content typepublic MockHttpServletRequestBuilder contentType(String contentType)
contentType
- the content typepublic MockHttpServletRequestBuilder accept(MediaType... mediaTypes)
mediaTypes
- one or more media typespublic MockHttpServletRequestBuilder accept(String... mediaTypes)
mediaTypes
- one or more media types; internally joined as
comma-separated Stringpublic MockHttpServletRequestBuilder header(String name, Object... values)
name
- the header namevalues
- one or more header valuespublic MockHttpServletRequestBuilder headers(HttpHeaders httpHeaders)
httpHeaders
- the headers and values to addpublic MockHttpServletRequestBuilder param(String name, String... values)
MockHttpServletRequest.getParameterMap()
.
In the Servlet API, a request parameter may be parsed from the query
string and/or from the body of an application/x-www-form-urlencoded
request. This method simply adds to the request parameter map. You may
also use add Servlet request parameters by specifying the query or form
data through one of the following:
MockMvcRequestBuilders
.
queryParam(java.lang.String, java.lang.String...)
or queryParams
.
content
with contentType
application/x-www-form-urlencoded
.
name
- the parameter namevalues
- one or more valuespublic MockHttpServletRequestBuilder params(MultiValueMap<String,String> params)
param(String, String...)
with a MultiValueMap
.params
- the parameters to addpublic MockHttpServletRequestBuilder queryParam(String name, String... values)
request parameters
map. The parameter
name and value are encoded when they are added to the query string.name
- the parameter namevalues
- one or more valuespublic MockHttpServletRequestBuilder queryParams(MultiValueMap<String,String> params)
params(MultiValueMap)
request parameters} map. The parameter
name and value are encoded when they are added to the query string.params
- the parameters to addpublic MockHttpServletRequestBuilder cookie(Cookie... cookies)
cookies
- the cookies to addpublic MockHttpServletRequestBuilder locale(Locale... locales)
locales
- the locales to addlocale(Locale)
public MockHttpServletRequestBuilder locale(@Nullable Locale locale)
locale
- the locale, or null
to reset itlocale(Locale...)
public MockHttpServletRequestBuilder requestAttr(String name, Object value)
name
- the attribute namevalue
- the attribute valuepublic MockHttpServletRequestBuilder sessionAttr(String name, Object value)
name
- the session attribute namevalue
- the session attribute valuepublic MockHttpServletRequestBuilder sessionAttrs(Map<String,Object> sessionAttributes)
sessionAttributes
- the session attributespublic MockHttpServletRequestBuilder flashAttr(String name, Object value)
name
- the flash attribute namevalue
- the flash attribute valuepublic MockHttpServletRequestBuilder flashAttrs(Map<String,Object> flashAttributes)
flashAttributes
- the flash attributespublic MockHttpServletRequestBuilder session(MockHttpSession session)
Individual attributes provided via sessionAttr(String, Object)
override the content of the session provided here.
session
- the HTTP sessionpublic MockHttpServletRequestBuilder principal(Principal principal)
principal
- the principalpublic MockHttpServletRequestBuilder with(RequestPostProcessor postProcessor)
MockHttpServletRequest
in ways not built directly into the MockHttpServletRequestBuilder
.
Implementation of this interface can have builder-style methods themselves
and be made accessible through static factory methods.with
in interface ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>
postProcessor
- a post-processor to addpublic boolean isMergeEnabled()
isMergeEnabled
in interface Mergeable
true
.public Object merge(@Nullable Object parent)
public final MockHttpServletRequest buildRequest(ServletContext servletContext)
MockHttpServletRequest
.buildRequest
in interface RequestBuilder
servletContext
- the ServletContext
to use to create the requestprotected MockHttpServletRequest createServletRequest(ServletContext servletContext)
MockHttpServletRequest
based on the supplied
ServletContext
.
Can be overridden in subclasses.
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request)
SmartRequestBuilder
org.springframework.test.web.servlet.request.RequestPostProcessors
.postProcessRequest
in interface SmartRequestBuilder
request
- the request to initialize