package com.proofpoint.http.client.jetty;
import com.google.common.collect.ImmutableList;
import com.proofpoint.http.client.AbstractHttpClientTest;
import com.proofpoint.http.client.HttpClientConfig;
import com.proofpoint.http.client.HttpRequestFilter;
import com.proofpoint.http.client.Request;
import com.proofpoint.http.client.ResponseHandler;
import com.proofpoint.http.client.TestingRequestFilter;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import static com.proofpoint.testing.Closeables.closeQuietly;
public class TestJettyHttpClient
extends AbstractHttpClientTest
{
private JettyHttpClient httpClient;
private JettyIoPool jettyIoPool;
@BeforeMethod
public void setUp()
{
jettyIoPool = new JettyIoPool("test-shared", new JettyIoPoolConfig());
httpClient = new JettyHttpClient(new HttpClientConfig(), jettyIoPool, ImmutableList.<HttpRequestFilter>of(new TestingRequestFilter()));
}
@Override
@AfterMethod
public void tearDown()
throws Exception
{
closeQuietly(httpClient);
closeQuietly(jettyIoPool);
}
@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);
}
}
}