
com.griddynamics.qa.tools.rest.TestRequest Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2015, Grid Dynamics International and/or its affiliates. All rights reserved.
* Grid Dynamics International PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.griddynamics.qa.tools.rest;
import com.jayway.restassured.internal.mapper.ObjectMapperType;
import com.jayway.restassured.response.Response;
import com.jayway.restassured.specification.RequestSpecification;
import java.util.Map;
import static com.jayway.restassured.RestAssured.given;
import static com.jayway.restassured.RestAssured.with;
/**
* Class contains methods for working with REST API
*
* @author mlykosova
* @author ybaturina
*/
public class TestRequest {
public static final int HTTP_OK = 200;
public static final int HTTP_BAD_REQUEST = 400;
public static final int HTTP_UNATHORIZED_REQUEST = 401;
public static final int HTTP_FORBIDDEN_REQUEST = 403;
public static final int HTTP_SERVICE_UNAVAILABLE = 503;
public static final String CONTENT_TYPE_XML = "text/xml; charset=utf-8";
private String url;
private Boolean isLogging = false;
private Response response;
public TestRequest() {
super();
}
public TestRequest(String url) {
this.url = url;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Boolean getIsLogging() {
return isLogging;
}
public void setIsLogging(Boolean isLogging) {
this.isLogging = isLogging;
}
public Response getResponse() {
return response;
}
public void setResponse(Response response) {
this.response = response;
}
public int getStatusCode() {
return response.getStatusCode();
}
public void get() {
response = isLogging ? given().log().body().expect().log().body().get(url) : with().get(url);
}
public void post(String body) {
response = isLogging ? given().log().body().body(body).expect().log().body().when().post(url) : with().body(body).post(url);
}
public void post(Map props) {
response = isLogging ? given().log().parameters().formParameters(props).expect().log().body().when().post(url)
: with().formParameters(props).post(url);
}
public void post(Object object) {
response = isLogging ? given().log().body().body(object, ObjectMapperType.GSON).expect().log().body().when().post(url) : with().body(object, ObjectMapperType.GSON).post(url);
}
public void soap(String body) {
response = isLogging ? given().log().body().body(body).contentType(CONTENT_TYPE_XML).expect().log().body().when().post(url) : with().body(body).contentType(CONTENT_TYPE_XML).post(url);
}
public void delete() {
response = isLogging ? given().expect().log().body().when().delete(url) : with().delete(url);
}
public void put(String body) {
response = isLogging ? given().log().body().body(body).expect().log().body().put(url) : with().body(body).put(url);
}
public void put(Object object) {
response = isLogging ? given().log().body().body(object, ObjectMapperType.GSON).expect().log().body().put(url) : with().body(object, ObjectMapperType.GSON).put(url);
}
public boolean isStatusCode200() {
return response.getStatusCode() == HTTP_OK;
}
public boolean isStatusCode400() {
return response.getStatusCode() == HTTP_BAD_REQUEST;
}
public boolean isStatusCode401() {
return response.getStatusCode() == HTTP_UNATHORIZED_REQUEST;
}
public boolean isStatusCode403() {
return response.getStatusCode() == HTTP_FORBIDDEN_REQUEST;
}
public boolean isStatusCode503() {
return response.getStatusCode() == HTTP_SERVICE_UNAVAILABLE;
}
public T getResponseObject(Class cls) {
return getResponse().as(cls, ObjectMapperType.GSON);
}
public String getResponseAsString() {
return com.jayway.restassured.RestAssured.get(url).asString();
}
public String getBodyAsString() {
return response.getBody().asString();
}
public void postMultipart(String... bodies) {
RequestSpecification req = given();
for (int i = 0; i < bodies.length; i++) {
req = req.multiPart("file", bodies[i]);
}
response = req.when().post(url);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy