@Test public void contentFromStringOnlySetsContentLength() { HttpRequest request = HttpRequest.get("/") .body("Response content.", UTF_16) .build(); assertThat(request.body(), is("Response content.".getBytes(UTF_16))); assertThat(request.header("Content-Length"), is(Optional.of("36"))); }
@Test public void extractsMultipleQueryParameterValues() { HttpRequest req = get("http://host.com:8080/path?fish=cod&fruit=orange&fish=smørflyndre").build(); assertThat(req.queryParams("fish"), contains("cod", "smørflyndre")); }
@Test public void returnsEmptyListWhenThereIsNoSuchParameter() { HttpRequest req = get("http://host.com:8080/path?poisson=cabillaud").build(); assertThat(req.queryParams("fish"), is(emptyIterable())); assertThat(req.queryParam("fish"), isAbsent()); }
@Test public void decodesQueryParamsContainingEncodedEquals() { HttpRequest request = get("http://example.com/?foo=a%2Bb%3Dc") .build(); assertThat(request.queryParam("foo"), isValue("a+b=c")); }
@Test public void decodesQueryParams() { HttpRequest request = get("http://example.com/?foo=bar").build(); assertThat(request.queryParam("foo"), isValue("bar")); }
@Test public void alwaysReturnsEmptyListWhenThereIsNoQueryString() { HttpRequest req = get("http://host.com:8080/path").build(); assertThat(req.queryParams("fish"), is(emptyIterable())); assertThat(req.queryParam("fish"), isAbsent()); }
@Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "Charset is not provided.") public void contentFromStringThrowsNPEWhenCharsetIsNull() { HttpRequest.get("/") .body("Response content.", null, false) .build(); }
@Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "Charset is not provided.") public void contentFromStringOnlyThrowsNPEWhenCharsetIsNull() { HttpRequest.get("/") .body("Response content.", null) .build(); }
@Test public void newCookiesWithDuplicateNamesOverridePreviousOnes() { HttpRequest r1 = HttpRequest.get("/") .cookies(requestCookie("y", "y1")) .build(); HttpRequest r2 = r1.newBuilder().addCookies( requestCookie("y", "y2")) .build(); assertThat(r2.cookies(), containsInAnyOrder(requestCookie("y", "y2"))); }
@Test public void addsCookiesToExistingCookies() { HttpRequest request = HttpRequest.get("/") .addCookies(requestCookie("z", "z1")) .addCookies(requestCookie("x", "x1"), requestCookie("y", "y1")) .build(); assertThat(request.cookies(), containsInAnyOrder(requestCookie("x", "x1"), requestCookie("y", "y1"), requestCookie("z", "z1"))); }
@Test public void setsHostHeaderFromAuthorityIfSet() { HttpRequest request = get("http://www.hotels.com").build(); assertThat(request.header(HOST), isValue("www.hotels.com")); }
@Test public void canExtractCookies() { HttpRequest request = get("/") .cookies( requestCookie("cookie1", "foo"), requestCookie("cookie3", "baz"), requestCookie("cookie2", "bar")) .build(); assertThat(request.cookie("cookie1"), isValue(requestCookie("cookie1", "foo"))); assertThat(request.cookie("cookie2"), isValue(requestCookie("cookie2", "bar"))); assertThat(request.cookie("cookie3"), isValue(requestCookie("cookie3", "baz"))); }
@Test public void extractsSingleQueryParameter() { HttpRequest req = get("http://host.com:8080/path?fish=cod&fruit=orange") .build(); assertThat(req.queryParam("fish"), isValue("cod")); }
@Test public void canUseBuilderToSetRequestProperties() { HttpRequest request = patch("https://hotels.com") .version(HTTP_1_1) .id("id") .header("headerName", "a") .cookies(requestCookie("cfoo", "bar")) .build(); assertThat(request.toString(), is("HttpRequest{version=HTTP/1.1, method=PATCH, uri=https://hotels.com, " + "headers=[headerName=a, Cookie=cfoo=bar, Host=hotels.com], id=id}")); assertThat(request.headers("headerName"), is(singletonList("a"))); }
private static HttpRequest addUserAgent(HttpRequest request, String userAgent) { return request.newBuilder() .addHeader(USER_AGENT, userAgent) .build(); }
public static MetricsSnapshot downloadFrom(String host, int port) throws IOException { HttpClient client = new StyxHttpClient.Builder().build(); HttpResponse response = await(client.sendRequest(get(format("http://%s:%d/admin/metrics", host, port)).build())); return new MetricsSnapshot(decodeToMap(response.bodyAs(UTF_8))); }
@Test(expectedExceptions = IllegalArgumentException.class) public void rejectsInvalidContentLength() { get("/foo") .addHeader(CONTENT_LENGTH, "foo") .build(); }
@Test public void createsRequestBuilderFromRequest() { HttpRequest originalRequest = get("/home") .cookies(requestCookie("fred", "blogs")) .header("some", "header") .build(); HttpRequest clonedRequest = originalRequest.newBuilder().build(); assertThat(clonedRequest.method(), is(originalRequest.method())); assertThat(clonedRequest.url(), is(originalRequest.url())); assertThat(clonedRequest.headers().toString(), is(originalRequest.headers().toString())); assertThat(clonedRequest.body(), is(originalRequest.body())); }
@Test public void transformedBodyIsNewCopy() { HttpRequest request = get("/foo") .body("Original body", UTF_8) .build(); HttpRequest newRequest = request.newBuilder() .body("New body", UTF_8) .build(); assertThat(request.bodyAs(UTF_8), is("Original body")); assertThat(newRequest.bodyAs(UTF_8), is("New body")); }
private HttpRequest newHealthCheckRequestFor(Origin origin) { return get(healthCheckUri) .header(HOST, origin.hostAsString()) .build(); }