
hope.kola.contract.restassured.HttpClientConfigBuilder Maven / Gradle / Ivy
package hope.kola.contract.restassured;
import static org.apache.http.entity.mime.HttpMultipartMode.*;
import io.restassured.config.HttpClientConfig;
import java.util.concurrent.TimeUnit;
import org.apache.http.entity.mime.HttpMultipartMode;
public class HttpClientConfigBuilder
implements Mergeable {
/** should parameters to {@code "http.socket.timeout"} format is miliseconds */
protected Long connectTimeout;
/** should parameters to {@code "http.connection.timeout"} format is miliseconds */
protected Long readTimeout;
Boolean shouldReuseHttpClientInstance;
HttpMultipartMode httpMultipartMode;
/** RFC 822, RFC 2045, RFC 2046 compliant */
public void multipartStrict() {
httpMultipartMode = STRICT;
}
/** browser-compatible mode, i.e. only write Content-Disposition; use content charset */
public void multipartRFC6532() {
httpMultipartMode = RFC6532;
}
/** RFC 6532 compliant */
public void multipartBrowserCompatible() {
httpMultipartMode = BROWSER_COMPATIBLE;
}
public void connectTimeoutInSeconds(Long connectTimeout) {
this.connectTimeout = TimeUnit.SECONDS.toMillis(connectTimeout);
}
public void connectTimeoutInMinutes(Long connectTimeout) {
this.connectTimeout = TimeUnit.MINUTES.toMillis(connectTimeout);
}
public void connectTimeout(Long connectTimeout) {
this.connectTimeout = connectTimeout;
}
public void readTimeout(Long readTimeout) {
this.readTimeout = readTimeout;
}
public void readTimeoutInSeconds(Long readTimeout) {
this.readTimeout = TimeUnit.SECONDS.toMillis(readTimeout);
}
public void readTimeoutInMinutes(Long readTimeout) {
this.readTimeout = TimeUnit.MINUTES.toMillis(readTimeout);
}
public Boolean shouldReuseHttpClientInstance() {
return shouldReuseHttpClientInstance;
}
public void reuseHttpClientInstance() {
shouldReuseHttpClientInstance = true;
}
public void newHttpClientInstance() {
shouldReuseHttpClientInstance = false;
}
@Override
public HttpClientConfigBuilder merger(HttpClientConfigBuilder from) {
HttpClientConfigBuilder res = new HttpClientConfigBuilder();
res.httpMultipartMode = httpMultipartMode;
res.connectTimeout = connectTimeout;
res.readTimeout = readTimeout;
res.shouldReuseHttpClientInstance = shouldReuseHttpClientInstance;
if (from.httpMultipartMode != null) {
res.httpMultipartMode = from.httpMultipartMode;
}
if (from.connectTimeout != null) {
res.connectTimeout = from.connectTimeout;
}
if (from.readTimeout != null) {
res.readTimeout = from.readTimeout;
}
if (from.shouldReuseHttpClientInstance != null) {
res.shouldReuseHttpClientInstance = from.shouldReuseHttpClientInstance;
}
return res;
}
@Override
public HttpClientConfig transform() {
HttpClientConfig res = new HttpClientConfig();
if (httpMultipartMode != null) {
res = res.httpMultipartMode(httpMultipartMode);
}
if (connectTimeout != null) {
res = res.setParam("http.connection.timeout", connectTimeout.intValue());
}
if (readTimeout != null) {
res = res.setParam("http.socket.timeout", connectTimeout.intValue());
}
if (shouldReuseHttpClientInstance != null && shouldReuseHttpClientInstance) {
res = res.dontReuseHttpClientInstance();
}
return res;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy