use of com.google.appengine.api.urlfetch.URLFetchServicePb.URLFetchRequest in project appengine-java-standard by GoogleCloudPlatform.
the class URLFetchServiceImplTest method testSync_URLOnly.
@Test
public void testSync_URLOnly() throws Exception {
URL url = new URL("http://google.com/foo");
String responseContent = "<p>This is the desired response.</p>";
URLFetchRequest requestProto = URLFetchRequest.newBuilder().setUrl(url.toString()).setMethod(RequestMethod.GET).setFollowRedirects(true).build();
URLFetchResponse responseProto = URLFetchResponse.newBuilder().setStatusCode(200).setContent(ByteString.copyFromUtf8(responseContent)).build();
when(delegate.makeSyncCall(same(ApiProxy.getCurrentEnvironment()), eq(URLFetchServiceImpl.PACKAGE), eq("Fetch"), eq(requestProto.toByteArray()))).thenReturn(responseProto.toByteArray());
HTTPResponse response = new URLFetchServiceImpl().fetch(url);
assertThat(response.getResponseCode()).isEqualTo(200);
assertThat(new String(response.getContent(), UTF_8)).isEqualTo(responseContent);
}
use of com.google.appengine.api.urlfetch.URLFetchServicePb.URLFetchRequest in project appengine-java-standard by GoogleCloudPlatform.
the class URLFetchServiceImplTest method testAsync_SimpleGet.
@Test
public void testAsync_SimpleGet() throws Exception {
URL url = new URL("http://google.com/foo");
String responseContent = "<p>This is the desired response.</p>";
URLFetchRequest requestProto = URLFetchRequest.newBuilder().setUrl(url.toString()).setMethod(RequestMethod.GET).setFollowRedirects(true).build();
URLFetchResponse responseProto = URLFetchResponse.newBuilder().setStatusCode(200).setContent(ByteString.copyFromUtf8(responseContent)).build();
when(delegate.makeAsyncCall(same(ApiProxy.getCurrentEnvironment()), eq(URLFetchServiceImpl.PACKAGE), eq("Fetch"), eq(requestProto.toByteArray()), any())).thenReturn(Futures.immediateFuture(responseProto.toByteArray()));
Future<HTTPResponse> responseFuture = new URLFetchServiceImpl().fetchAsync(new HTTPRequest(url));
HTTPResponse response = responseFuture.get();
assertThat(response.getResponseCode()).isEqualTo(200);
assertThat(new String(response.getContent(), UTF_8)).isEqualTo(responseContent);
}
use of com.google.appengine.api.urlfetch.URLFetchServicePb.URLFetchRequest in project appengine-java-standard by GoogleCloudPlatform.
the class URLFetchServiceImplTest method testSync_InvalidURLException.
@Test
public void testSync_InvalidURLException() throws Exception {
URL url = new URL("http://badrequest.com/foo");
HTTPRequest request = new HTTPRequest(url);
URLFetchRequest requestProto = URLFetchRequest.newBuilder().setUrl(url.toString()).setMethod(RequestMethod.GET).setFollowRedirects(true).build();
String errorDetails = "details";
when(delegate.makeSyncCall(same(ApiProxy.getCurrentEnvironment()), eq(URLFetchServiceImpl.PACKAGE), eq("Fetch"), eq(requestProto.toByteArray()))).thenThrow(new ApiProxy.ApplicationException(ErrorCode.INVALID_URL.getNumber(), errorDetails));
MalformedURLException ex = assertThrows(MalformedURLException.class, () -> new URLFetchServiceImpl().fetch(request));
assertThat(ex).hasMessageThat().contains(url.toString());
}
use of com.google.appengine.api.urlfetch.URLFetchServicePb.URLFetchRequest in project appengine-java-standard by GoogleCloudPlatform.
the class LocalURLFetchServiceIntegrationTest method testBadURL.
@Test
public void testBadURL() throws Exception {
startServer();
LocalRpcService.Status status = new LocalRpcService.Status();
URLFetchRequest request = URLFetchRequest.newBuilder().setMethod(RequestMethod.GET).setUrl("a bad url").build();
LocalURLFetchService localFetchService = new LocalURLFetchService();
localFetchService.init(null, ImmutableMap.of());
localFetchService.setTimeoutInMs(5000);
ApiProxy.ApplicationException exception = assertThrows(ApiProxy.ApplicationException.class, () -> localFetchService.fetch(status, request));
assertThat(exception.getApplicationError()).isEqualTo(ErrorCode.INVALID_URL.getNumber());
}
use of com.google.appengine.api.urlfetch.URLFetchServicePb.URLFetchRequest in project appengine-java-standard by GoogleCloudPlatform.
the class URLFetchServiceImplTest method testSync_SimplePUT.
@Test
public void testSync_SimplePUT() throws Exception {
String requestContent = "this=is&put=content";
String responseContent = "<p>This is the desired response.</p>";
URL url = new URL("http://google.com/foo");
HTTPRequest request = new HTTPRequest(url, HTTPMethod.PUT);
request.setPayload(requestContent.getBytes(UTF_8));
URLFetchRequest requestProto = URLFetchRequest.newBuilder().setUrl(url.toString()).setMethod(RequestMethod.PUT).setPayload(ByteString.copyFromUtf8(requestContent)).setFollowRedirects(true).build();
URLFetchResponse responseProto = URLFetchResponse.newBuilder().setStatusCode(200).setContent(ByteString.copyFromUtf8(responseContent)).build();
when(delegate.makeSyncCall(same(ApiProxy.getCurrentEnvironment()), eq(URLFetchServiceImpl.PACKAGE), eq("Fetch"), eq(requestProto.toByteArray()))).thenReturn(responseProto.toByteArray());
HTTPResponse response = new URLFetchServiceImpl().fetch(request);
assertThat(response.getResponseCode()).isEqualTo(200);
assertThat(new String(response.getContent(), UTF_8)).isEqualTo(responseContent);
}
Aggregations