package io.airlift.http.client.jetty;
import com.google.common.collect.ImmutableList;
import io.airlift.http.client.AbstractHttpClientTest;
import io.airlift.http.client.HttpClientConfig;
import io.airlift.http.client.HttpRequestFilter;
import io.airlift.http.client.Request;
import io.airlift.http.client.ResponseHandler;
import io.airlift.http.client.TestingRequestFilter;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import static io.airlift.testing.Closeables.closeQuietly;
public class TestJettyHttpClient
extends AbstractHttpClientTest
{
private JettyHttpClient httpClient;
private JettyIoPool jettyIoPool;
@BeforeClass
public void setUpHttpClient()
{
jettyIoPool = new JettyIoPool("test-shared", new JettyIoPoolConfig());
httpClient = new JettyHttpClient(createClientConfig(), jettyIoPool, ImmutableList.<HttpRequestFilter>of(new TestingRequestFilter()));
}
@AfterClass(alwaysRun = true)
public void tearDownHttpClient()
throws Exception
{
closeQuietly(httpClient);
closeQuietly(jettyIoPool);
}
@Override
protected HttpClientConfig createClientConfig()
{
return new HttpClientConfig()
.setHttp2Enabled(false);
}
@Override
public <T, E extends Exception> T executeRequest(Request request, ResponseHandler<T, E> responseHandler)
throws Exception
{
return httpClient.execute(request, responseHandler);
}
@Override
public <T, E extends Exception> T executeRequest(HttpClientConfig config, Request request, ResponseHandler<T, E> responseHandler)
throws Exception
{
try (
JettyIoPool jettyIoPool = new JettyIoPool("test-private", new JettyIoPoolConfig());
JettyHttpClient client = new JettyHttpClient(config, jettyIoPool, ImmutableList.<HttpRequestFilter>of(new TestingRequestFilter()))
) {
return client.execute(request, responseHandler);
}
}
}