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 2017/05/01 11:11:11 UTC
svn commit: r1793308 [2/11] - in /httpcomponents/httpclient/trunk:
httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/
httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/
httpclient5-cache/src/test/java/org/apache/...
Modified: httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java?rev=1793308&r1=1793307&r2=1793308&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java (original)
+++ httpcomponents/httpclient/trunk/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestCachedHttpResponseGenerator.java Mon May 1 11:11:09 2017
@@ -35,12 +35,10 @@ import static org.mockito.Mockito.when;
import java.util.Date;
import java.util.HashMap;
-import org.apache.hc.client5.http.HttpRoute;
import org.apache.hc.client5.http.cache.HttpCacheEntry;
-import org.apache.hc.client5.http.impl.sync.RoutedHttpRequest;
+import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.Header;
-import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.message.BasicHeader;
import org.junit.Assert;
import org.junit.Before;
@@ -49,19 +47,15 @@ import org.junit.Test;
@SuppressWarnings({"boxing","static-access"}) // test code
public class TestCachedHttpResponseGenerator {
- private HttpHost host;
- private HttpRoute route;
private HttpCacheEntry entry;
- private RoutedHttpRequest request;
+ private ClassicHttpRequest request;
private CacheValidityPolicy mockValidityPolicy;
private CachedHttpResponseGenerator impl;
@Before
public void setUp() {
- host = new HttpHost("foo.example.com", 80);
- route = new HttpRoute(host);
entry = HttpTestUtils.makeCacheEntry(new HashMap<String, String>());
- request = RoutedHttpRequest.adapt(HttpTestUtils.makeDefaultRequest(), route);
+ request = HttpTestUtils.makeDefaultRequest();
mockValidityPolicy = mock(CacheValidityPolicy.class);
impl = new CachedHttpResponseGenerator(mockValidityPolicy);
}
@@ -165,7 +159,7 @@ public class TestCachedHttpResponseGener
@Test
public void testResponseDoesNotContainEntityToServeHEADRequestIfEntryContainsResource() throws Exception {
- final RoutedHttpRequest headRequest = RoutedHttpRequest.adapt(HttpTestUtils.makeDefaultHEADRequest(), route);
+ final ClassicHttpRequest headRequest = HttpTestUtils.makeDefaultHEADRequest();
final ClassicHttpResponse response = impl.generateResponse(headRequest, entry);
Assert.assertNull(response.getEntity());
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=1793308&r1=1793307&r2=1793308&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 Mon May 1 11:11:09 2017
@@ -30,7 +30,6 @@ import static org.easymock.EasyMock.anyO
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
-import static org.easymock.EasyMock.isNull;
import static org.easymock.EasyMock.same;
import static org.easymock.classextension.EasyMock.createMockBuilder;
import static org.easymock.classextension.EasyMock.createNiceMock;
@@ -46,12 +45,10 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.hc.client5.http.cache.HttpCacheEntry;
-import org.apache.hc.client5.http.impl.sync.ClientExecChain;
-import org.apache.hc.client5.http.protocol.HttpClientContext;
-import org.apache.hc.client5.http.sync.methods.HttpExecutionAware;
+import org.apache.hc.client5.http.sync.ExecChain;
import org.apache.hc.client5.http.sync.methods.HttpGet;
-import org.apache.hc.client5.http.impl.sync.RoutedHttpRequest;
import org.apache.hc.client5.http.utils.DateUtils;
+import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.HeaderElements;
import org.apache.hc.core5.http.HttpHeaders;
@@ -83,6 +80,7 @@ public class TestCachingExec extends Tes
private CachingExec impl;
private boolean mockedImpl;
+ private ExecChain.Scope scope;
private ClassicHttpResponse mockBackendResponse;
private Date requestDate;
@@ -93,6 +91,7 @@ public class TestCachingExec extends Tes
public void setUp() {
super.setUp();
+ scope = new ExecChain.Scope(route, request, mockEndpoint, context);
mockBackendResponse = createNiceMock(ClassicHttpResponse.class);
requestDate = new Date(System.currentTimeMillis() - 1000);
@@ -100,7 +99,7 @@ public class TestCachingExec extends Tes
}
@Override
- public CachingExec createCachingExecChain(final ClientExecChain mockBackend,
+ public CachingExec createCachingExecChain(
final HttpCache mockCache, final CacheValidityPolicy mockValidityPolicy,
final ResponseCachingPolicy mockResponsePolicy,
final CachedHttpResponseGenerator mockResponseGenerator,
@@ -111,7 +110,6 @@ public class TestCachingExec extends Tes
final RequestProtocolCompliance mockRequestProtocolCompliance,
final CacheConfig config, final AsynchronousValidator asyncValidator) {
return impl = new CachingExec(
- mockBackend,
mockCache,
mockValidityPolicy,
mockResponsePolicy,
@@ -126,9 +124,8 @@ public class TestCachingExec extends Tes
}
@Override
- public CachingExec createCachingExecChain(final ClientExecChain backend,
- final HttpCache cache, final CacheConfig config) {
- return impl = new CachingExec(backend, cache, config);
+ public CachingExec createCachingExecChain(final HttpCache cache, final CacheConfig config) {
+ return impl = new CachingExec(cache, config);
}
@Override
@@ -160,7 +157,7 @@ public class TestCachingExec extends Tes
requestIsFatallyNonCompliant(null);
replayMocks();
- final HttpResponse result = impl.execute(request, context);
+ final HttpResponse result = impl.execute(request, scope, mockExecChain);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -179,7 +176,7 @@ public class TestCachingExec extends Tes
implExpectsAnyRequestAndReturn(mockBackendResponse);
replayMocks();
- final HttpResponse result = impl.execute(request, context);
+ final HttpResponse result = impl.execute(request, scope, mockExecChain);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -205,7 +202,7 @@ public class TestCachingExec extends Tes
expect(mockBackendResponse.getCode()).andReturn(200);
replayMocks();
- final HttpResponse result = impl.execute(request, context);
+ final HttpResponse result = impl.execute(request, scope, mockExecChain);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -229,13 +226,14 @@ public class TestCachingExec extends Tes
mayReturnStaleWhileRevalidating(false);
expect(impl.revalidateCacheEntry(
- isA(RoutedHttpRequest.class),
- isA(HttpClientContext.class),
- (HttpExecutionAware) isNull(),
+ isA(HttpHost.class),
+ isA(ClassicHttpRequest.class),
+ isA(ExecChain.Scope.class),
+ isA(ExecChain.class),
isA(HttpCacheEntry.class))).andReturn(mockBackendResponse);
replayMocks();
- final HttpResponse result = impl.execute(request, context);
+ final HttpResponse result = impl.execute(request, scope, mockExecChain);
verifyMocks();
Assert.assertSame(mockBackendResponse, result);
@@ -248,8 +246,7 @@ public class TestCachingExec extends Tes
public void testRevalidationCallsHandleBackEndResponseWhenNot200Or304() throws Exception {
mockImplMethods(GET_CURRENT_DATE, HANDLE_BACKEND_RESPONSE);
- final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
- new BasicClassicHttpRequest("GET", "/"), route);
+ final ClassicHttpRequest validate = new BasicClassicHttpRequest("GET", "/");
final ClassicHttpResponse originResponse = new BasicClassicHttpResponse(HttpStatus.SC_NOT_FOUND, "Not Found");
final ClassicHttpResponse finalResponse = HttpTestUtils.make200Response();
@@ -258,15 +255,16 @@ public class TestCachingExec extends Tes
backendExpectsRequestAndReturn(validate, originResponse);
getCurrentDateReturns(responseDate);
expect(impl.handleBackendResponse(
+ same(host),
same(validate),
- same(context),
+ same(scope),
eq(requestDate),
eq(responseDate),
same(originResponse))).andReturn(finalResponse);
replayMocks();
final HttpResponse result =
- impl.revalidateCacheEntry(request, context, null, entry);
+ impl.revalidateCacheEntry(host, request, scope, mockExecChain, entry);
verifyMocks();
Assert.assertSame(finalResponse, result);
@@ -278,8 +276,7 @@ public class TestCachingExec extends Tes
mockImplMethods(GET_CURRENT_DATE);
- final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
- new BasicClassicHttpRequest("GET", "/"), route);
+ final ClassicHttpRequest validate = new BasicClassicHttpRequest("GET", "/");
final ClassicHttpResponse originResponse = HttpTestUtils.make304Response();
final HttpCacheEntry updatedEntry = HttpTestUtils.makeCacheEntry();
@@ -299,7 +296,7 @@ public class TestCachingExec extends Tes
responseIsGeneratedFromCache();
replayMocks();
- impl.revalidateCacheEntry(request, context, null, entry);
+ impl.revalidateCacheEntry(host, request, scope, mockExecChain, entry);
verifyMocks();
}
@@ -309,32 +306,29 @@ public class TestCachingExec extends Tes
mockImplMethods(GET_CURRENT_DATE);
// Fail on an unexpected request, rather than causing a later NPE
- EasyMock.resetToStrict(mockBackend);
+ EasyMock.resetToStrict(mockExecChain);
- final RoutedHttpRequest validate = RoutedHttpRequest.adapt(
- new HttpGet("http://foo.example.com/resource"), route);
- final RoutedHttpRequest relativeValidate = RoutedHttpRequest.adapt(
- new BasicClassicHttpRequest("GET", "/resource"), route);
+ final ClassicHttpRequest validate = new HttpGet("http://foo.example.com/resource");
+ final ClassicHttpRequest relativeValidate = new BasicClassicHttpRequest("GET", "/resource");
final ClassicHttpResponse originResponse = new BasicClassicHttpResponse(HttpStatus.SC_OK, "Okay");
conditionalRequestBuilderReturns(validate);
getCurrentDateReturns(requestDate);
- final ClassicHttpResponse resp = mockBackend.execute(
- eqRequest(relativeValidate), EasyMock.isA(HttpClientContext.class),
- EasyMock.<HttpExecutionAware> isNull());
+ final ClassicHttpResponse resp = mockExecChain.proceed(
+ eqRequest(relativeValidate), isA(ExecChain.Scope.class));
expect(resp).andReturn(originResponse);
getCurrentDateReturns(responseDate);
replayMocks();
- impl.revalidateCacheEntry(request, context, null, entry);
+ impl.revalidateCacheEntry(host, request, scope, mockExecChain, entry);
verifyMocks();
}
@Test
public void testEndlessResponsesArePassedThrough() throws Exception {
- impl = createCachingExecChain(mockBackend, new BasicHttpCache(), CacheConfig.DEFAULT);
+ impl = createCachingExecChain(new BasicHttpCache(), CacheConfig.DEFAULT);
final ClassicHttpResponse resp1 = new BasicClassicHttpResponse(HttpStatus.SC_OK, "OK");
resp1.setHeader("Date", DateUtils.formatDate(new Date()));
@@ -366,16 +360,14 @@ public class TestCachingExec extends Tes
}
}, -1));
- final ClassicHttpResponse resp = mockBackend.execute(
- EasyMock.isA(RoutedHttpRequest.class),
- EasyMock.isA(HttpClientContext.class),
- EasyMock.<HttpExecutionAware>isNull());
+ final ClassicHttpResponse resp = mockExecChain.proceed(
+ isA(ClassicHttpRequest.class), isA(ExecChain.Scope.class));
EasyMock.expect(resp).andReturn(resp1);
- final RoutedHttpRequest req1 = RoutedHttpRequest.adapt(HttpTestUtils.makeDefaultRequest(), route);
+ final ClassicHttpRequest req1 = HttpTestUtils.makeDefaultRequest();
replayMocks();
- final ClassicHttpResponse resp2 = impl.execute(req1, context, null);
+ final ClassicHttpResponse resp2 = impl.execute(req1, scope, mockExecChain);
maxlength.set(size.get() * 2);
verifyMocks();
assertTrue(HttpTestUtils.semanticallyTransparent(resp1, resp2));
@@ -392,7 +384,7 @@ public class TestCachingExec extends Tes
replayMocks();
- impl.callBackend(request, context, null);
+ impl.callBackend(host, request, scope, mockExecChain);
verifyMocks();
}
@@ -400,9 +392,10 @@ public class TestCachingExec extends Tes
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());
+ same(host),
+ isA(ClassicHttpRequest.class),
+ isA(ExecChain.Scope.class),
+ isA(ExecChain.class));
return EasyMock.expect(resp).andReturn(response);
}
@@ -420,12 +413,13 @@ public class TestCachingExec extends Tes
expect(impl.getCurrentDate()).andReturn(date);
}
- private void handleBackendResponseReturnsResponse(final RoutedHttpRequest request, final ClassicHttpResponse response)
+ private void handleBackendResponseReturnsResponse(final ClassicHttpRequest request, final ClassicHttpResponse response)
throws IOException {
expect(
impl.handleBackendResponse(
+ same(host),
same(request),
- isA(HttpClientContext.class),
+ same(scope),
isA(Date.class),
isA(Date.class),
isA(ClassicHttpResponse.class))).andReturn(response);
@@ -434,7 +428,6 @@ public class TestCachingExec extends Tes
private void mockImplMethods(final String... methods) {
mockedImpl = true;
impl = createMockBuilder(CachingExec.class).withConstructor(
- mockBackend,
mockCache,
mockValidityPolicy,
mockResponsePolicy,