|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.jayway.restassured.builder.ResponseSpecBuilder
public class ResponseSpecBuilder
You can use the builder to construct a response specification. The specification can be used as e.g.
ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
RequestSpecification requestSpec = new RequestSpecBuilder().addParam("parameter1", "value1").build();
given(responseSpec, requestSpec).post("/something");
or
ResponseSpecification responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
expect().
spec(responseSpec).
body("x.y.z", equalTo("something")).
when().
get("/something");
| Constructor Summary | |
|---|---|
ResponseSpecBuilder()
|
|
| Method Summary | |
|---|---|
ResponseSpecBuilder |
addResponseSpecification(ResponseSpecification specification)
Merge this builder with settings from another specification. |
ResponseSpecification |
build()
Build the response specification. |
ResponseSpecBuilder |
expectBody(org.hamcrest.Matcher<?> matcher)
Expect that the response content conforms to one or more Hamcrest matchers. |
ResponseSpecBuilder |
expectBody(String path,
List<Argument> arguments,
org.hamcrest.Matcher<?> matcher)
Same as expectBody(String, org.hamcrest.Matcher) expect that you can pass arguments to the path. |
ResponseSpecBuilder |
expectBody(String path,
org.hamcrest.Matcher<?> matcher)
Expect that the JSON or XML response content conforms to one or more Hamcrest matchers. |
ResponseSpecBuilder |
expectContent(org.hamcrest.Matcher<?> matcher)
Expect that the response content conforms to one or more Hamcrest matchers. |
ResponseSpecBuilder |
expectContent(String path,
List<Argument> arguments,
org.hamcrest.Matcher<?> matcher)
Same as expectContent(String, org.hamcrest.Matcher) expect that you can pass arguments to the path. |
ResponseSpecBuilder |
expectContent(String path,
org.hamcrest.Matcher<?> matcher)
Expect that the JSON or XML response content conforms to one or more Hamcrest matchers. |
ResponseSpecBuilder |
expectContentType(ContentType contentType)
Set the response content type to be contentType. |
ResponseSpecBuilder |
expectContentType(String contentType)
Set the response content type to be contentType. |
ResponseSpecBuilder |
expectCookie(String cookieName)
Expect that a cookie exist in the response, regardless of value (it may have no value at all). |
ResponseSpecBuilder |
expectCookie(String cookieName,
org.hamcrest.Matcher<String> expectedValueMatcher)
Expect that a response cookie matches the supplied cookie name and hamcrest matcher. |
ResponseSpecBuilder |
expectCookie(String cookieName,
String expectedValue)
Expect that a response cookie matches the supplied name and value. |
ResponseSpecBuilder |
expectCookies(Map<String,Object> expectedCookies)
Expect that response cookies matches those specified in a Map. |
ResponseSpecBuilder |
expectHeader(String headerName,
org.hamcrest.Matcher<String> expectedValueMatcher)
Expect that a response header matches the supplied header name and hamcrest matcher. |
ResponseSpecBuilder |
expectHeader(String headerName,
String expectedValue)
Expect that a response header matches the supplied name and value. |
ResponseSpecBuilder |
expectHeaders(Map<String,Object> expectedHeaders)
Expect that response headers matches those specified in a Map. |
ResponseSpecBuilder |
expectStatusCode(int expectedStatusCode)
Expect that the response status code matches an integer. |
ResponseSpecBuilder |
expectStatusCode(org.hamcrest.Matcher<Integer> expectedStatusCode)
Expect that the response status code matches the given Hamcrest matcher. |
ResponseSpecBuilder |
expectStatusLine(org.hamcrest.Matcher<String> expectedStatusLine)
Expect that the response status line matches the given Hamcrest matcher. |
ResponseSpecBuilder |
expectStatusLine(String expectedStatusLine)
Expect that the response status line matches the given String. |
ResponseSpecBuilder |
registerParser(String contentType,
Parser parser)
Register a content-type to be parsed using a predefined parser. |
ResponseSpecBuilder |
rootPath(String rootPath)
Set the root path of the response body so that you don't need to write the entire path for each expectation. |
ResponseSpecBuilder |
rootPath(String rootPath,
List<Argument> arguments)
Set the root path of the response body so that you don't need to write the entire path for each expectation. |
ResponseSpecBuilder |
setDefaultParser(Parser parser)
Register a default predefined parser that will be used if no other parser (registered or pre-defined) matches the response content-type. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ResponseSpecBuilder()
| Method Detail |
|---|
public ResponseSpecBuilder expectContent(org.hamcrest.Matcher<?> matcher)
matcher - The hamcrest matcher that must response content must match.
public ResponseSpecBuilder expectContent(String path,
org.hamcrest.Matcher<?> matcher)
Assume that a GET request to "/lotto" returns a JSON response containing:
{ "lotto":{
"lottoId":5,
"winning-numbers":[2,45,34,23,7,5,3],
"winners":[{
"winnerId":23,
"numbers":[2,45,34,23,3,5]
},{
"winnerId":54,
"numbers":[52,3,12,11,18,22]
}]
}}
You can verify that the lottoId is equal to 5 like this:
ResponseSpecBuilder builder = new ResponseSpecBuilder();
builder.expectContent("lotto.lottoId", equalTo(5));
matcher - The hamcrest matcher that the response content must match.
public ResponseSpecBuilder expectContent(String path,
List<Argument> arguments,
org.hamcrest.Matcher<?> matcher)
expectContent(String, org.hamcrest.Matcher) expect that you can pass arguments to the path. This
is useful in situations where you have e.g. pre-defined variables that constitutes the path:
String someSubPath = "else";
int index = 1;
expect().body("something.%s[%d]", withArgs(someSubPath, index), equalTo("some value")). ..
or if you have complex root paths and don't wish to duplicate the path for small variations:
expect().
root("filters.filterConfig[%d].filterConfigGroups.find { it.name == 'Gold' }.includes").
body("", withArgs(0), hasItem("first")).
body("", withArgs(1), hasItem("second")).
..
The path and arguments follows the standard formatting syntax of Java.
Note that withArgs can be statically imported from the com.jayway.restassured.RestAssured class.
path - The body pathmatcher - The hamcrest matcher that must response body must match.
expectContent(String, org.hamcrest.Matcher)public ResponseSpecBuilder expectStatusCode(org.hamcrest.Matcher<Integer> expectedStatusCode)
expectedStatusCode - The expected status code matcher.
public ResponseSpecBuilder expectStatusCode(int expectedStatusCode)
expectedStatusCode - The expected status code.
public ResponseSpecBuilder expectStatusLine(org.hamcrest.Matcher<String> expectedStatusLine)
expectedStatusLine - The expected status line matcher.
public ResponseSpecBuilder expectStatusLine(String expectedStatusLine)
expectedStatusLine - The expected status line.
public ResponseSpecBuilder expectHeaders(Map<String,Object> expectedHeaders)
E.g. expect that the response of the GET request to "/something" contains header headerName1=headerValue1 and headerName2=headerValue2:
Map expectedHeaders = new HashMap();
expectedHeaders.put("headerName1", "headerValue1"));
expectedHeaders.put("headerName2", "headerValue2");
You can also use Hamcrest matchers:
Map expectedHeaders = new HashMap();
expectedHeaders.put("Content-Type", containsString("charset=UTF-8"));
expectedHeaders.put("Content-Length", "160");
expectedHeaders - The Map of expected response headers
public ResponseSpecBuilder expectHeader(String headerName,
org.hamcrest.Matcher<String> expectedValueMatcher)
headerName - The name of the expected headerexpectedValueMatcher - The Hamcrest matcher that must conform to the value
public ResponseSpecBuilder expectHeader(String headerName,
String expectedValue)
headerName - The name of the expected headerexpectedValue - The value of the expected header
public ResponseSpecBuilder expectCookies(Map<String,Object> expectedCookies)
E.g. expect that the response of the GET request to "/something" contains cookies cookieName1=cookieValue1 and cookieName2=cookieValue2:
Map expectedCookies = new HashMap();
expectedCookies.put("cookieName1", "cookieValue1"));
expectedCookies.put("cookieName2", "cookieValue2");
You can also use Hamcrest matchers:
Map expectedCookies = new HashMap();
expectedCookies.put("cookieName1", containsString("Value1"));
expectedCookies.put("cookieName2", "cookieValue2");
expectedCookies - A Map of expected response cookies
public ResponseSpecBuilder expectCookie(String cookieName,
org.hamcrest.Matcher<String> expectedValueMatcher)
E.g. cookieName1=cookieValue1
cookieName - The name of the expected cookieexpectedValueMatcher - The Hamcrest matcher that must conform to the value
public ResponseSpecBuilder expectCookie(String cookieName,
String expectedValue)
cookieName - The name of the expected cookieexpectedValue - The value of the expected cookie
public ResponseSpecBuilder expectCookie(String cookieName)
cookieName - the cookie to validate that it exists
public ResponseSpecBuilder rootPath(String rootPath)
expect().
body("x.y.firstName", is(..)).
body("x.y.lastName", is(..)).
body("x.y.age", is(..)).
body("x.y.gender", is(..)).
when().
get(..);
you can use a root path and do:
expect().
rootPath("x.y").
body("firstName", is(..)).
body("lastName", is(..)).
body("age", is(..)).
body("gender", is(..)).
when().
get(..);
rootPath - The root path to use.
public ResponseSpecBuilder rootPath(String rootPath,
List<Argument> arguments)
rootPath(String)
but also provides a way to defined arguments.
rootPath - The root path to use.arguments - The arguments.ResponseSpecification.rootPath(String, java.util.List)public ResponseSpecBuilder expectContentType(ContentType contentType)
contentType.
Note that this will affect the way the response is decoded.
E,g. if you can't use JSON/XML matching (see e.g. expectBody(String, org.hamcrest.Matcher)) if you specify a
content-type of "text/plain". If you don't specify the response content type REST Assured will automatically try to
figure out which content type to use.
contentType - The content type of the response.
public ResponseSpecBuilder expectContentType(String contentType)
contentType.
Note that this will affect the way the response is decoded.
E,g. if you can't use JSON/XML matching (see e.g. expectBody(String, org.hamcrest.Matcher)) if you specify a
content-type of "text/plain". If you don't specify the response content type REST Assured will automatically try to
figure out which content type to use.
contentType - The content type of the response.
public ResponseSpecBuilder expectBody(org.hamcrest.Matcher<?> matcher)
matcher - The hamcrest matcher that must response content must match.
public ResponseSpecBuilder expectBody(String path,
org.hamcrest.Matcher<?> matcher)
Assume that a GET request to "/lotto" returns a JSON response containing:
{ "lotto":{
"lottoId":5,
"winning-numbers":[2,45,34,23,7,5,3],
"winners":[{
"winnerId":23,
"numbers":[2,45,34,23,3,5]
},{
"winnerId":54,
"numbers":[52,3,12,11,18,22]
}]
}}
You can verify that the lottoId is equal to 5 like this:
ResponseSpecBuilder builder = new ResponseSpecBuilder();
builder.expectBody("lotto.lottoId", equalTo(5));
matcher - The hamcrest matcher that the response content must match.
public ResponseSpecBuilder expectBody(String path,
List<Argument> arguments,
org.hamcrest.Matcher<?> matcher)
expectBody(String, org.hamcrest.Matcher) expect that you can pass arguments to the path. This
is useful in situations where you have e.g. pre-defined variables that constitutes the path:
String someSubPath = "else";
int index = 1;
expect().body("something.%s[%d]", withArgs(someSubPath, index), equalTo("some value")). ..
or if you have complex root paths and don't wish to duplicate the path for small variations:
expect().
root("filters.filterConfig[%d].filterConfigGroups.find { it.name == 'Gold' }.includes").
body("", withArgs(0), hasItem("first")).
body("", withArgs(1), hasItem("second")).
..
The path and arguments follows the standard formatting syntax of Java.
Note that withArgs can be statically imported from the com.jayway.restassured.RestAssured class.
path - The body pathmatcher - The hamcrest matcher that must response body must match.
expectBody(String, org.hamcrest.Matcher)public ResponseSpecBuilder addResponseSpecification(ResponseSpecification specification)
specification - The specification the add.
public ResponseSpecBuilder registerParser(String contentType,
Parser parser)
expect().body("document.child", equalsTo("something"))..
Since application/vnd.uoml+xml is not registered to be processed by the XML parser by default you need to explicitly
tell REST Assured to use this parser before making the request:
expect().parser("application/vnd.uoml+xml", Parser.XML").when(). ..;
You can also specify by default by using:
RestAssured.registerParser("application/vnd.uoml+xml, Parser.XML");
contentType - The content-type to registerparser - The parser to use when verifying the response.
public ResponseSpecBuilder setDefaultParser(Parser parser)
expect().defaultParser(Parser.JSON).when(). ..;You can also specify it for every response by using:
RestAssured.defaultParser(Parser.JSON);
parser - The parser to use when verifying the response if no other parser is found for the response content-type.public ResponseSpecification build()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||