org.mockserver.model
Class HttpRequest

java.lang.Object
  extended by org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString
      extended by org.mockserver.model.ObjectWithJsonToString
          extended by org.mockserver.model.Not
              extended by org.mockserver.model.HttpRequest

public class HttpRequest
extends Not

Author:
jamesdbloom

Field Summary
 
Fields inherited from class org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString
logger
 
Constructor Summary
HttpRequest()
           
 
Method Summary
 HttpRequest clone()
           
 boolean containsHeader(String name)
          Returns true if a header with the specified name has been added
 Body getBody()
           
 byte[] getBodyAsRawBytes()
           
 String getBodyAsString()
           
 List<Cookie> getCookies()
           
 String getFirstHeader(String name)
           
 List<Header> getHeaders()
           
 NottableString getMethod()
           
 String getMethod(String defaultValue)
           
 NottableString getPath()
           
 List<Parameter> getQueryStringParameters()
           
 boolean hasQueryStringParameter(NottableString name, NottableString expectedValue)
           
 boolean hasQueryStringParameter(String name, String expectedValue)
           
 Boolean isKeepAlive()
           
 Boolean isSecure()
           
 boolean matches(String method, String path)
           
 HttpRequest replaceHeader(Header header)
          Adds one header to match on as a Header object where the header values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
static HttpRequest request()
           
static HttpRequest request(String path)
           
 HttpRequest withBody(Body body)
          The body match rules on such as using one of the Body subclasses as follows:
 HttpRequest withBody(byte[] body)
          The body to match on as binary data such as a pdf or image
 HttpRequest withBody(String body)
          The exact string body to match on such as "this is an exact string body"
 HttpRequest withBody(String body, Charset charset)
          The exact string body to match on such as "this is an exact string body"
 HttpRequest withCookie(Cookie cookie)
          Adds one cookie to match on as a Cookie object where the cookie values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withCookie(NottableString name, NottableString value)
          Adds one cookie to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withCookie(String name, String value)
          Adds one cookie to match on, which can specified using either plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withCookies(Cookie... cookies)
          The cookies to match on as a varags Cookie objects where the values or keys of each cookie can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withCookies(List<Cookie> cookies)
          The cookies to match on as a list of Cookie objects where the values or keys of each cookie can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withHeader(Header header)
          Adds one header to match on as a Header object where the header values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withHeader(NottableString name, NottableString... values)
          Adds one header to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can also be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withHeader(String name, String... values)
          Adds one header to match which can specified using plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withHeaders(Header... headers)
          The headers to match on as a varags of Header objects where the values or keys of each header can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withHeaders(List<Header> headers)
          The headers to match on as a list of Header objects where the values or keys of each header can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withKeepAlive(Boolean isKeepAlive)
          Match on whether the request was made using an HTTP persistent connection, also called HTTP keep-alive, or HTTP connection reuse
 HttpRequest withMethod(NottableString method)
          The HTTP method all method except a specific value using the "not" operator, for example this allows operations such as not("GET")
 HttpRequest withMethod(String method)
          The HTTP method to match on such as "GET" or "POST"
 HttpRequest withPath(NottableString path)
          The path to not match on for example not("/some_mocked_path") with match any path not equal to "/some_mocked_path", the servlet context path is ignored for matching and should not be specified here regex values are also supported such as not(".*_path"), see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html for full details of the supported regex syntax
 HttpRequest withPath(String path)
          The path to match on such as "/some_mocked_path" any servlet context path is ignored for matching and should not be specified here regex values are also supported such as ".*_path", see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html for full details of the supported regex syntax
 HttpRequest withQueryStringParameter(NottableString name, NottableString... values)
          Adds one query string parameter to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can also be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withQueryStringParameter(Parameter parameter)
          Adds one query string parameter to match on as a Parameter object where the parameter values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withQueryStringParameter(String name, String... values)
          Adds one query string parameter to match which can specified using plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withQueryStringParameters(List<Parameter> parameters)
          The query string parameters to match on as a list of Parameter objects where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withQueryStringParameters(Map<String,List<String>> parameters)
          The query string parameters to match on as a Map> where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withQueryStringParameters(Parameter... parameters)
          The query string parameters to match on as a varags Parameter objects where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)
 HttpRequest withSecure(Boolean isSsl)
          Match on whether the request was made over SSL (i.e.
 
Methods inherited from class org.mockserver.model.Not
getNot, isNot, not, not, setNot
 
Methods inherited from class org.mockserver.model.ObjectWithJsonToString
toString
 
Methods inherited from class org.mockserver.model.ObjectWithReflectiveEqualsHashCodeToString
addFieldsExcludedFromEqualsAndHashCode, equals, fieldsExcludedFromEqualsAndHashCode, hashCode
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HttpRequest

public HttpRequest()
Method Detail

request

public static HttpRequest request()

request

public static HttpRequest request(String path)

isKeepAlive

public Boolean isKeepAlive()

withKeepAlive

public HttpRequest withKeepAlive(Boolean isKeepAlive)
Match on whether the request was made using an HTTP persistent connection, also called HTTP keep-alive, or HTTP connection reuse

Parameters:
isKeepAlive - true if the request was made with an HTTP persistent connection

isSecure

public Boolean isSecure()

withSecure

public HttpRequest withSecure(Boolean isSsl)
Match on whether the request was made over SSL (i.e. HTTPS)

Parameters:
isSsl - true if the request was made with SSL

withMethod

public HttpRequest withMethod(String method)
The HTTP method to match on such as "GET" or "POST"

Parameters:
method - the HTTP method such as "GET" or "POST"

withMethod

public HttpRequest withMethod(NottableString method)
The HTTP method all method except a specific value using the "not" operator, for example this allows operations such as not("GET")

Parameters:
method - the HTTP method to not match on not("GET") or not("POST")

getMethod

public NottableString getMethod()

getMethod

public String getMethod(String defaultValue)

withPath

public HttpRequest withPath(String path)
The path to match on such as "/some_mocked_path" any servlet context path is ignored for matching and should not be specified here regex values are also supported such as ".*_path", see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html for full details of the supported regex syntax

Parameters:
path - the path such as "/some_mocked_path" or a regex

withPath

public HttpRequest withPath(NottableString path)
The path to not match on for example not("/some_mocked_path") with match any path not equal to "/some_mocked_path", the servlet context path is ignored for matching and should not be specified here regex values are also supported such as not(".*_path"), see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html for full details of the supported regex syntax

Parameters:
path - the path to not match on such as not("/some_mocked_path") or not(".*_path")

getPath

public NottableString getPath()

matches

public boolean matches(String method,
                       String path)

withQueryStringParameters

public HttpRequest withQueryStringParameters(List<Parameter> parameters)
The query string parameters to match on as a list of Parameter objects where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
parameters - the list of Parameter objects where the values or keys of each parameter can be either a string or a regex

withQueryStringParameters

public HttpRequest withQueryStringParameters(Parameter... parameters)
The query string parameters to match on as a varags Parameter objects where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
parameters - the varags Parameter objects where the values or keys of each parameter can be either a string or a regex

withQueryStringParameters

public HttpRequest withQueryStringParameters(Map<String,List<String>> parameters)
The query string parameters to match on as a Map> where the values or keys of each parameter can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
parameters - the Map> object where the values or keys of each parameter can be either a string or a regex

withQueryStringParameter

public HttpRequest withQueryStringParameter(Parameter parameter)
Adds one query string parameter to match on as a Parameter object where the parameter values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
parameter - the Parameter object which can have a values list of strings or regular expressions

withQueryStringParameter

public HttpRequest withQueryStringParameter(String name,
                                            String... values)
Adds one query string parameter to match which can specified using plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the parameter name
values - the parameter values which can be a varags of strings or regular expressions

withQueryStringParameter

public HttpRequest withQueryStringParameter(NottableString name,
                                            NottableString... values)
Adds one query string parameter to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can also be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the parameter name as a NottableString
values - the parameter values which can be a varags of NottableStrings

getQueryStringParameters

public List<Parameter> getQueryStringParameters()

hasQueryStringParameter

public boolean hasQueryStringParameter(String name,
                                       String expectedValue)

hasQueryStringParameter

public boolean hasQueryStringParameter(NottableString name,
                                       NottableString expectedValue)

withBody

public HttpRequest withBody(String body)
The exact string body to match on such as "this is an exact string body"

Parameters:
body - the body on such as "this is an exact string body"

withBody

public HttpRequest withBody(String body,
                            Charset charset)
The exact string body to match on such as "this is an exact string body"

Parameters:
body - the body on such as "this is an exact string body"
charset - character set the string will be encoded in

withBody

public HttpRequest withBody(byte[] body)
The body to match on as binary data such as a pdf or image

Parameters:
body - a byte array

withBody

public HttpRequest withBody(Body body)
The body match rules on such as using one of the Body subclasses as follows:

exact string match: - exact("this is an exact string body");

or

- new StringBody("this is an exact string body")

regular expression match: - regex("username[a-z]{4}");

or

- new RegexBody("username[a-z]{4}");

json match: - json("{username: 'foo', password: 'bar'}");

or

- json("{username: 'foo', password: 'bar'}", MatchType.STRICT);

or

- new JsonBody("{username: 'foo', password: 'bar'}");

json schema match: - jsonSchema("{type: 'object', properties: { 'username': { 'type': 'string' }, 'password': { 'type': 'string' } }, 'required': ['username', 'password']}");

or

- jsonSchemaFromResource("org/mockserver/model/loginSchema.json");

or

- new JsonSchemaBody("{type: 'object', properties: { 'username': { 'type': 'string' }, 'password': { 'type': 'string' } }, 'required': ['username', 'password']}");

xpath match: - xpath("/element[key = 'some_key' and value = 'some_value']");

or

- new XPathBody("/element[key = 'some_key' and value = 'some_value']");

body parameter match: - params( param("name_one", "value_one_one", "value_one_two") param("name_two", "value_two") );

or

- new ParameterBody( new Parameter("name_one", "value_one_one", "value_one_two") new Parameter("name_two", "value_two") );

binary match: - binary(IOUtils.readFully(getClass().getClassLoader().getResourceAsStream("example.pdf"), 1024));

or

- new BinaryBody(IOUtils.readFully(getClass().getClassLoader().getResourceAsStream("example.pdf"), 1024));

for more details of the supported regular expression syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html for more details of the supported json syntax see http://jsonassert.skyscreamer.org for more details of the supported json schema syntax see http://json-schema.org/ for more detail of XPath syntax see http://saxon.sourceforge.net/saxon6.5.3/expressions.html

Parameters:
body - an instance of one of the Body subclasses including StringBody, ParameterBody or BinaryBody

getBody

public Body getBody()

getBodyAsRawBytes

public byte[] getBodyAsRawBytes()

getBodyAsString

public String getBodyAsString()

withHeaders

public HttpRequest withHeaders(List<Header> headers)
The headers to match on as a list of Header objects where the values or keys of each header can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
headers - the list of Header objects where the values or keys of each header can be either a string or a regex

withHeaders

public HttpRequest withHeaders(Header... headers)
The headers to match on as a varags of Header objects where the values or keys of each header can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
headers - the varags of Header objects where the values or keys of each header can be either a string or a regex

withHeader

public HttpRequest withHeader(Header header)
Adds one header to match on as a Header object where the header values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
header - the Header object which can have a values list of strings or regular expressions

withHeader

public HttpRequest withHeader(String name,
                              String... values)
Adds one header to match which can specified using plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the header name
values - the header values which can be a varags of strings or regular expressions

withHeader

public HttpRequest withHeader(NottableString name,
                              NottableString... values)
Adds one header to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can also be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the header name as a NottableString
values - the header values which can be a varags of NottableStrings

replaceHeader

public HttpRequest replaceHeader(Header header)
Adds one header to match on as a Header object where the header values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
header - the Header object which can have a values list of strings or regular expressions

getHeaders

public List<Header> getHeaders()

getFirstHeader

public String getFirstHeader(String name)

containsHeader

public boolean containsHeader(String name)
Returns true if a header with the specified name has been added

Parameters:
name - the Header name
Returns:
true if a header has been added with that name otherwise false

withCookies

public HttpRequest withCookies(List<Cookie> cookies)
The cookies to match on as a list of Cookie objects where the values or keys of each cookie can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
cookies - the list of Cookie objects where the values or keys of each cookie can be either a string or a regex

withCookies

public HttpRequest withCookies(Cookie... cookies)
The cookies to match on as a varags Cookie objects where the values or keys of each cookie can be either a string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
cookies - the varags Cookie objects where the values or keys of each cookie can be either a string or a regex

withCookie

public HttpRequest withCookie(Cookie cookie)
Adds one cookie to match on as a Cookie object where the cookie values list can be a list of strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
cookie - the Cookie object which can have a values list of strings or regular expressions

withCookie

public HttpRequest withCookie(String name,
                              String value)
Adds one cookie to match on, which can specified using either plain strings or regular expressions (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the cookies name
value - the cookies value which can be a string or regular expression

withCookie

public HttpRequest withCookie(NottableString name,
                              NottableString value)
Adds one cookie to match on or to not match on using the NottableString, each NottableString can either be a positive matching value, such as string("match"), or a value to not match on, such as not("do not match"), the string values passed to the NottableString can be a plain string or a regex (for more details of the supported regex syntax see http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html)

Parameters:
name - the cookies name
value - the cookies value which can be a string or regular expression

getCookies

public List<Cookie> getCookies()

clone

public HttpRequest clone()
Overrides:
clone in class Object


Copyright © 2017. All rights reserved.