public String parseMessage(HttpResponse response) { if (response.getPayload() == null) return null; try { return Strings2.toStringAndClose(response.getPayload().openStream()); } catch (IOException e) { throw Throwables.propagate(e); } } }
static String requestPayloadIfStringOrFormIfNotReturnEmptyString(HttpRequest request) { if (request.getPayload() != null && ("application/x-www-form-urlencoded".equals(request.getPayload().getContentMetadata().getContentType()) || request .getPayload() instanceof StringPayload) && request.getPayload().getContentMetadata().getContentLength() != null && request.getPayload().getContentMetadata().getContentLength() < 1024) { try { return String.format(" [%s] ", request.getPayload() instanceof StringPayload ? request.getPayload() .getRawContent() : Strings2.toString(request.getPayload())); } catch (IOException e) { } } return ""; }
public void testUrlEncodeDecodeShouldGiveTheSameString() { String actual = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCc903twxU2zcQnIJdXv61RwZNZW94uId9qz08fgsBJsCOnHNIC4+L9k" + "DOA2IHV9cUfEDBm1Be5TbpadWwSbS/05E+FARH2/MCO932UgcKUq5PGymS0249fLCBPci5zoLiG5vIym+1ij1hL/nHvkK99NIwe7io+Lmp" + "9OcF3PTsm3Rgh5T09cRHGX9horp0VoAVa9vKJx6C1/IEHVnG8p0YPPa1lmemvx5kNBEiyoNQNYa34EiFkcJfP6rqNgvY8h/j4nE9SXoUCC" + "/g6frhMFMOL0tzYqvz0Lczqm1Oh4RnSn3O9X4R934p28qqAobe337hmlLUdb6H5zuf+NwCh0HdZ"; assertEquals(actual, urlDecode(urlEncode(actual))); }
@Test(dataProvider = "strings") public void testReplaceQueryIsEncoded(String key) { assertEquals(uriBuilder("/redirect").addQuery("foo", key).toString(), "/redirect?foo=" + key); assertEquals(uriBuilder("/redirect").addQuery("foo", key).build().toString(), "/redirect?foo=" + urlEncode(key, '/', ',')); }
@Test public void testFromProperty() throws Exception { SupplyFromProviderURIOrNodesProperty supplier = new SupplyFromProviderURIOrNodesProperty(URI.create("file://bar")); supplier.nodes = Strings2.toStringAndClose(getClass().getResourceAsStream("/test1.yaml")); assertEquals(supplier.asCharSource(Charsets.UTF_8).read(), Strings2.toStringAndClose(getClass().getResourceAsStream( "/test1.yaml"))); }
public void testBindString() throws IOException { BindGroupNameToJsonPayload binder = new BindGroupNameToJsonPayload(); HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); HttpRequest newRequest = binder.bindToRequest(request, "foo"); String payload = Strings2.toStringAndClose(newRequest.getPayload().getInput()); assertEquals(payload, "{\"groupname\":\"foo\"}"); } }
public void testWhenTemplateDoesntExist() throws IOException { URI templateUri = URI.create("https://vcenterprise.bluelock.com/api/v1.0/vAppTemplate/3"); VAppTemplate template = createMock(VAppTemplate.class); replay(template); String expected = Strings2.toStringAndClose(getClass().getResourceAsStream("/instantiationparams.xml")); GeneratedHttpRequest request = requestForArgs(ImmutableList.<Object> of()); BindInstantiateVAppTemplateParamsToXmlPayload binder = createInjector(templateUri, template).getInstance( BindInstantiateVAppTemplateParamsToXmlPayload.class); Map<String, Object> map = Maps.newHashMap(); map.put("name", "my-vapp"); map.put("template", templateUri.toASCIIString()); assertEquals(binder.bindToRequest(request, map).getPayload().getRawContent(), expected); }
public void testEuc2() { InputStream is = Strings2 .toInputStream("<?xml version=\"1.0\" ?><DescribeRegionsResponse xmlns=\"http://ec2.amazonaws.com/doc/2009-11-30/\"><requestId>1LAQRTCLTLPS6CEIC627</requestId><regionInfo><item><regionUrl>http://10.255.255.1:8773/services/Cloud</regionUrl><regionName>nova</regionName></item></regionInfo></DescribeRegionsResponse>"); Map<String, URI> expected = ImmutableMap.<String, URI> of("nova", URI.create("http://10.255.255.1:8773/services/Cloud")); Map<String, URI> result = factory.create( injector.getInstance(DescribeRegionsResponseHandler.class)).parse( is); assertEquals(result, expected); }
public void testAddBase64AndUrlEncodedQueryParams() { String base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; URI uri = URI.create("http://goo.com:443?header1=" + Strings2.urlEncode(base64Chars)); HttpRequest request = HttpRequest.builder() .method("GET") .endpoint(uri) .addQueryParam("header2", base64Chars) .build(); assertEquals( request.getRequestLine(), "GET http://goo.com:443?header1=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%2B/%3D&header2=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%2B/%3D HTTP/1.1"); }
@Test public void testSignPutUrlWithTime() throws Exception { String name = "hello"; String text = "fooooooooooooooooooooooo"; Blob blob = view.getBlobStore().blobBuilder(name).payload(text).contentType("text/plain").build(); String container = getContainerName(); try { HttpRequest request = view.getSigner().signPutBlob(container, blob, getSignedUrlTimeout()); assertEquals(request.getFilters().size(), 0); // Strip Expect: 100-continue to make actual responses visible, since // Java 7+ will throw a ProtocolException instead of setting the response code: // http://www.docjar.com/html/api/sun/net/www/protocol/http/HttpURLConnection.java.html#1021 request = request.toBuilder().removeHeader(EXPECT).build(); Strings2.toStringAndClose(view.utils().http().invoke(request).getPayload().openStream()); } finally { returnContainer(container); } }
@Test public void testPayerRequester() throws HttpException { Payer payer = createParser() .parse( Strings2 .toInputStream("<RequestPaymentConfiguration xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\"><Payer>Requester</Payer></RequestPaymentConfiguration>")); assertEquals(payer, Payer.REQUESTER); }
@Test public void testEncodeAsOpenSSH() throws IOException, InvalidKeySpecException, NoSuchAlgorithmException { String encoded = SshKeys.encodeAsOpenSSH((RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic( SshKeys.publicKeySpecFromOpenSSH(Payloads.newPayload(getClass().getResourceAsStream("/test.pub"))))); assertEquals(encoded, Strings2.toStringAndClose(getClass().getResourceAsStream("/test.pub")).trim()); }
@Test public void testIterableSliceExpectedSingle() throws IOException { PayloadSlicer slicer = new BasePayloadSlicer(); String contents = "aaaaaaaaaabbbbbbbbbbccccc"; Payload payload = new InputStreamPayload(new ByteArrayInputStream(contents.getBytes(Charsets.US_ASCII))); Iterator<Payload> iter = slicer.slice(payload, 25).iterator(); assertTrue(iter.hasNext(), "Not enough results"); assertEquals(Strings2.toStringAndClose(iter.next().openStream()), contents); assertFalse(iter.hasNext()); }
@Test public void testSignPutUrl() throws Exception { String name = "hello"; String text = "fooooooooooooooooooooooo"; Blob blob = view.getBlobStore().blobBuilder(name).payload(text).contentType("text/plain").build(); String container = getContainerName(); try { HttpRequest request = view.getSigner().signPutBlob(container, blob); assertEquals(request.getFilters().size(), 0); Strings2.toString(view.utils().http().invoke(request).getPayload()); assertConsistencyAwareContainerSize(container, 1); } finally { returnContainer(container); } }
@Test void testConvertWithContent() throws IOException { HTTPResponse gaeResponse = createMock(HTTPResponse.class); expect(gaeResponse.getResponseCode()).andReturn(200); List<HTTPHeader> headers = Lists.newArrayList(); headers.add(new HTTPHeader(HttpHeaders.CONTENT_TYPE, "text/xml")); expect(gaeResponse.getHeaders()).andReturn(headers); expect(gaeResponse.getContent()).andReturn("hello".getBytes()).atLeastOnce(); replay(gaeResponse); HttpResponse response = req.apply(gaeResponse); assertEquals(response.getStatusCode(), 200); assertEquals(Strings2.toString(response.getPayload()), "hello"); assertEquals(response.getHeaders().size(), 0); assertEquals(response.getPayload().getContentMetadata().getContentType(), "text/xml"); }
@Test public void testParseQueryEncodedWithDefaultJavaEncoder() { String key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCc903twxU2zcQnIJdXv61RwZNZW94uId9qz08fgsBJsCOnHNIC4+L9k" + "DOA2IHV9cUfEDBm1Be5TbpadWwSbS/05E+FARH2/MCO932UgcKUq5PGymS0249fLCBPci5zoLiG5vIym+1ij1hL/nHvkK99NIwe7io+Lmp" + "9OcF3PTsm3Rgh5T09cRHGX9horp0VoAVa9vKJx6C1/IEHVnG8p0YPPa1lmemvx5kNBEiyoNQNYa34EiFkcJfP6rqNgvY8h/j4nE9SXoUCC" + "/g6frhMFMOL0tzYqvz0Lczqm1Oh4RnSn3O9X4R934p28qqAobe337hmlLUdb6H5zuf+NwCh0HdZ"; Set<String> expected = ImmutableSet.of(key); Multimap<String, String> parsedMap = queryParser().apply("a=1&b=1+2&publickey=" + Strings2.urlEncode(key)); assertEquals(parsedMap.get("publickey"), expected); parsedMap = queryParser().apply("publickey=" + Strings2.urlEncode(key)); assertEquals(parsedMap.get("publickey"), expected); }
public void testApplyInputStream() throws IOException { String expected = Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateNodeService-test.xml")); HttpRequest request = HttpRequest.builder().method("GET").endpoint("http://test").build(); BindAddNodeServiceToXmlPayload binder = injector.getInstance(BindAddNodeServiceToXmlPayload.class); Map<String, Object> map = Maps.newHashMap(); map.put("name", "Node for Jim"); map.put("ipAddress", "172.16.20.3"); map.put("port", "80"); map.put("enabled", "false"); map.put("description", "Some test node"); assertEquals(binder.bindToRequest(request, map).getPayload().getRawContent(), expected); } }
@Test(invocationCount = 5, timeOut = 5000) public void testGetStringViaRequest() throws IOException { HttpResponse getStringResponse = client.invoke(HttpRequest.builder().method("GET") .endpoint(format("http://localhost:%d/objects/", testPort)).build()); assertEquals(Strings2.toString(getStringResponse.getPayload()).trim(), XML); }
@Test public void testGetStringViaRequest() throws Exception { MockWebServer server = mockWebServer(new MockResponse().setBody(XML)); IntegrationTestClient client = client(server.getUrl("/").toString()); try { HttpResponse getStringResponse = client.invoke(HttpRequest.builder().method("GET") .endpoint(server.getUrl("/objects").toString()).build()); assertEquals(Strings2.toStringAndClose(getStringResponse.getPayload().openStream()).trim(), XML); } finally { closeQuietly(client); server.shutdown(); } }
public void testDefault() throws Exception { String expected = Strings2.toStringAndClose(getClass().getResourceAsStream("/copyVApp-default.xml")); GeneratedHttpRequest request = requestForArgs(ImmutableList.<Object> of()); BindCloneVAppParamsToXmlPayload binder = injector.getInstance(BindCloneVAppParamsToXmlPayload.class); Builder<String, Object> map = ImmutableMap.builder(); map.put("name", "my-vapp"); map.put("Source", "https://vcenterprise.bluelock.com/api/v1.0/vapp/4181"); assertEquals(binder.bindToRequest(request, map.build()).getPayload().getRawContent(), expected); } }