You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2016/12/27 19:48:10 UTC
svn commit: r1776187 [5/21] - in /httpcomponents/httpclient/trunk: ./
httpclient5-cache/src/main/java/org/apache/hc/client5/http/cache/
httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/
httpclient5-cache/src/test/java/org/apache/hc...
Modified: httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java?rev=1776187&r1=1776186&r2=1776187&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachingExec.java Tue Dec 27 19:48:07 2016
@@ -45,15 +45,14 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.cache.HttpCacheEntry;
import org.apache.hc.client5.http.impl.sync.ClientExecChain;
-import org.apache.hc.client5.http.methods.CloseableHttpResponse;
import org.apache.hc.client5.http.methods.HttpExecutionAware;
import org.apache.hc.client5.http.methods.HttpGet;
-import org.apache.hc.client5.http.methods.HttpRequestWrapper;
+import org.apache.hc.client5.http.methods.RoutedHttpRequest;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.client5.http.utils.DateUtils;
+import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.HeaderElements;
import org.apache.hc.core5.http.HttpHeaders;
import org.apache.hc.core5.http.HttpHost;
@@ -61,10 +60,9 @@ import org.apache.hc.core5.http.HttpRequ
import org.apache.hc.core5.http.HttpResponse;
import org.apache.hc.core5.http.HttpStatus;
import org.apache.hc.core5.http.HttpVersion;
-import org.apache.hc.core5.http.entity.InputStreamEntity;
-import org.apache.hc.core5.http.message.BasicHttpRequest;
-import org.apache.hc.core5.http.message.BasicHttpResponse;
-import org.apache.hc.core5.http.message.BasicStatusLine;
+import org.apache.hc.core5.http.io.entity.InputStreamEntity;
+import org.apache.hc.core5.http.message.BasicClassicHttpRequest;
+import org.apache.hc.core5.http.message.BasicClassicHttpResponse;
import org.easymock.EasyMock;
import org.easymock.IExpectationSetters;
import org.junit.Assert;
@@ -85,7 +83,7 @@ public class TestCachingExec extends Tes
private CachingExec impl;
private boolean mockedImpl;
- private CloseableHttpResponse mockBackendResponse;
+ private ClassicHttpResponse mockBackendResponse;
private Date requestDate;
private Date responseDate;
@@ -95,7 +93,7 @@ public class TestCachingExec extends Tes
public void setUp() {
super.setUp();
- mockBackendResponse = createNiceMock(CloseableHttpResponse.class);
+ mockBackendResponse = createNiceMock(ClassicHttpResponse.class);
requestDate = new Date(System.currentTimeMillis() - 1000);
responseDate = new Date();
@@ -162,7 +160,7 @@ public class TestCachingExec extends Tes
requestIsFatallyNonCompliant(null);
replayMocks();
- final HttpResponse result = impl.execute(route, request, context);
+ final HttpResponse result = impl.execute(request, context);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -181,7 +179,7 @@ public class TestCachingExec extends Tes
implExpectsAnyRequestAndReturn(mockBackendResponse);
replayMocks();
- final HttpResponse result = impl.execute(route, request, context);
+ final HttpResponse result = impl.execute(request, context);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -203,12 +201,11 @@ public class TestCachingExec extends Tes
expect(mockConditionalRequestBuilder.buildConditionalRequest(request, mockCacheEntry))
.andReturn(request);
backendExpectsRequestAndReturn(request, mockBackendResponse);
- expect(mockBackendResponse.getProtocolVersion()).andReturn(HttpVersion.HTTP_1_1);
- expect(mockBackendResponse.getStatusLine()).andReturn(
- new BasicStatusLine(HttpVersion.HTTP_1_1, 200, "Ok"));
+ expect(mockBackendResponse.getVersion()).andReturn(HttpVersion.HTTP_1_1).anyTimes();
+ expect(mockBackendResponse.getCode()).andReturn(200);
replayMocks();
- final HttpResponse result = impl.execute(route, request, context);
+ final HttpResponse result = impl.execute(request, context);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -232,14 +229,13 @@ public class TestCachingExec extends Tes
mayReturnStaleWhileRevalidating(false);
expect(impl.revalidateCacheEntry(
- isA(HttpRoute.class),
- isA(HttpRequestWrapper.class),
+ isA(RoutedHttpRequest.class),
isA(HttpClientContext.class),
(HttpExecutionAware) isNull(),
isA(HttpCacheEntry.class))).andReturn(mockBackendResponse);
replayMocks();
- final HttpResponse result = impl.execute(route, request, context);
+ final HttpResponse result = impl.execute(request, context);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -252,12 +248,10 @@ public class TestCachingExec extends Tes
public void testRevalidationCallsHandleBackEndResponseWhenNot200Or304() throws Exception {
mockImplMethods(GET_CURRENT_DATE, HANDLE_BACKEND_RESPONSE);
- final HttpRequestWrapper validate = HttpRequestWrapper.wrap(
- new BasicHttpRequest("GET", "/", HttpVersion.HTTP_1_1), host);
- final CloseableHttpResponse originResponse = Proxies.enhanceResponse(
- new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_NOT_FOUND, "Not Found"));
- final CloseableHttpResponse finalResponse = Proxies.enhanceResponse(
- HttpTestUtils.make200Response());
+ final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
+ new BasicClassicHttpRequest("GET", "/"), route);
+ final ClassicHttpResponse originResponse = new BasicClassicHttpResponse(HttpStatus.SC_NOT_FOUND, "Not Found");
+ final ClassicHttpResponse finalResponse = HttpTestUtils.make200Response();
conditionalRequestBuilderReturns(validate);
getCurrentDateReturns(requestDate);
@@ -272,7 +266,7 @@ public class TestCachingExec extends Tes
replayMocks();
final HttpResponse result =
- impl.revalidateCacheEntry(route, request, context, null, entry);
+ impl.revalidateCacheEntry(request, context, null, entry);
verifyMocks();
Assert.assertSame(finalResponse, result);
@@ -284,10 +278,9 @@ public class TestCachingExec extends Tes
mockImplMethods(GET_CURRENT_DATE);
- final HttpRequestWrapper validate = HttpRequestWrapper.wrap(
- new BasicHttpRequest("GET", "/", HttpVersion.HTTP_1_1), host);
- final HttpResponse originResponse = Proxies.enhanceResponse(
- new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_NOT_MODIFIED, "Not Modified"));
+ final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
+ new BasicClassicHttpRequest("GET", "/"), route);
+ final ClassicHttpResponse originResponse = HttpTestUtils.make304Response();
final HttpCacheEntry updatedEntry = HttpTestUtils.makeCacheEntry();
conditionalRequestBuilderReturns(validate);
@@ -306,7 +299,7 @@ public class TestCachingExec extends Tes
responseIsGeneratedFromCache();
replayMocks();
- impl.revalidateCacheEntry(route, request, context, null, entry);
+ impl.revalidateCacheEntry(request, context, null, entry);
verifyMocks();
}
@@ -318,17 +311,16 @@ public class TestCachingExec extends Tes
// Fail on an unexpected request, rather than causing a later NPE
EasyMock.resetToStrict(mockBackend);
- final HttpRequestWrapper validate = HttpRequestWrapper.wrap(
- new HttpGet("http://foo.example.com/resource"), host);
- final HttpRequestWrapper relativeValidate = HttpRequestWrapper.wrap(
- new BasicHttpRequest("GET", "/resource", HttpVersion.HTTP_1_1), host);
- final CloseableHttpResponse originResponse = Proxies.enhanceResponse(
- new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "Okay"));
+ final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
+ new HttpGet("http://foo.example.com/resource"), route);
+ final RoutedHttpRequest relativeValidate = RoutedHttpRequest.adapt(
+ new BasicClassicHttpRequest("GET", "/resource"), route);
+ final ClassicHttpResponse originResponse = new BasicClassicHttpResponse(HttpStatus.SC_OK, "Okay");
conditionalRequestBuilderReturns(validate);
getCurrentDateReturns(requestDate);
- final CloseableHttpResponse resp = mockBackend.execute(EasyMock.isA(HttpRoute.class),
+ final ClassicHttpResponse resp = mockBackend.execute(
eqRequest(relativeValidate), EasyMock.isA(HttpClientContext.class),
EasyMock.<HttpExecutionAware> isNull());
expect(resp).andReturn(originResponse);
@@ -336,7 +328,7 @@ public class TestCachingExec extends Tes
getCurrentDateReturns(responseDate);
replayMocks();
- impl.revalidateCacheEntry(route, request, context, null, entry);
+ impl.revalidateCacheEntry(request, context, null, entry);
verifyMocks();
}
@@ -344,7 +336,7 @@ public class TestCachingExec extends Tes
public void testEndlessResponsesArePassedThrough() throws Exception {
impl = createCachingExecChain(mockBackend, new BasicHttpCache(), CacheConfig.DEFAULT);
- final HttpResponse resp1 = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
+ final ClassicHttpResponse resp1 = new BasicClassicHttpResponse(HttpStatus.SC_OK, "OK");
resp1.setHeader("Date", DateUtils.formatDate(new Date()));
resp1.setHeader("Server", "MockOrigin/1.0");
resp1.setHeader(HttpHeaders.TRANSFER_ENCODING, HeaderElements.CHUNKED_ENCODING);
@@ -374,17 +366,16 @@ public class TestCachingExec extends Tes
}
}, -1));
- final CloseableHttpResponse resp = mockBackend.execute(
- EasyMock.isA(HttpRoute.class),
- EasyMock.isA(HttpRequestWrapper.class),
+ final ClassicHttpResponse resp = mockBackend.execute(
+ EasyMock.isA(RoutedHttpRequest.class),
EasyMock.isA(HttpClientContext.class),
EasyMock.<HttpExecutionAware>isNull());
- EasyMock.expect(resp).andReturn(Proxies.enhanceResponse(resp1));
+ EasyMock.expect(resp).andReturn(resp1);
- final HttpRequestWrapper req1 = HttpRequestWrapper.wrap(HttpTestUtils.makeDefaultRequest(), host);
+ final RoutedHttpRequest req1 = RoutedHttpRequest.adapt(HttpTestUtils.makeDefaultRequest(), route);
replayMocks();
- final CloseableHttpResponse resp2 = impl.execute(route, req1, context, null);
+ final ClassicHttpResponse resp2 = impl.execute(req1, context, null);
maxlength.set(size.get() * 2);
verifyMocks();
assertTrue(HttpTestUtils.semanticallyTransparent(resp1, resp2));
@@ -393,7 +384,7 @@ public class TestCachingExec extends Tes
@Test
public void testCallBackendMakesBackEndRequestAndHandlesResponse() throws Exception {
mockImplMethods(GET_CURRENT_DATE, HANDLE_BACKEND_RESPONSE);
- final HttpResponse resp = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK");
+ final ClassicHttpResponse resp = new BasicClassicHttpResponse(HttpStatus.SC_OK, "OK");
getCurrentDateReturns(requestDate);
backendExpectsRequestAndReturn(request, resp);
getCurrentDateReturns(responseDate);
@@ -401,16 +392,15 @@ public class TestCachingExec extends Tes
replayMocks();
- impl.callBackend(route, request, context, null);
+ impl.callBackend(request, context, null);
verifyMocks();
}
- private IExpectationSetters<CloseableHttpResponse> implExpectsAnyRequestAndReturn(
- final CloseableHttpResponse response) throws Exception {
- final CloseableHttpResponse resp = impl.callBackend(
- EasyMock.isA(HttpRoute.class),
- EasyMock.isA(HttpRequestWrapper.class),
+ private IExpectationSetters<ClassicHttpResponse> implExpectsAnyRequestAndReturn(
+ final ClassicHttpResponse response) throws Exception {
+ final ClassicHttpResponse resp = impl.callBackend(
+ EasyMock.isA(RoutedHttpRequest.class),
EasyMock.isA(HttpClientContext.class),
EasyMock.<HttpExecutionAware>isNull());
return EasyMock.expect(resp).andReturn(response);
@@ -430,7 +420,7 @@ public class TestCachingExec extends Tes
expect(impl.getCurrentDate()).andReturn(date);
}
- private void handleBackendResponseReturnsResponse(final HttpRequestWrapper request, final HttpResponse response)
+ private void handleBackendResponseReturnsResponse(final RoutedHttpRequest request, final ClassicHttpResponse response)
throws IOException {
expect(
impl.handleBackendResponse(
@@ -438,8 +428,7 @@ public class TestCachingExec extends Tes
isA(HttpClientContext.class),
isA(Date.class),
isA(Date.class),
- isA(CloseableHttpResponse.class))).andReturn(
- Proxies.enhanceResponse(response));
+ isA(ClassicHttpResponse.class))).andReturn(response);
}
private void mockImplMethods(final String... methods) {