@Override public Iterator<HttpHeader> iterator() { return stream(nettyHeaders.spliterator(), false) .map(header -> header(header.getKey(), header.getValue())) .iterator(); }
@Override public Iterator<HttpHeader> iterator() { return stream(nettyHeaders.spliterator(), false) .map(header -> header(header.getKey(), header.getValue())) .iterator(); }
@Test(expectedExceptions = NullPointerException.class) public void valuesCannotBeNull() { header("name", "value1", null, "value2"); } }
@Test(expectedExceptions = IllegalArgumentException.class) public void rejectsEmptyValuesList() { header("name", new String[0]); }
@Test public void equalsBehavesCorrectly() { HttpHeader base = header("name", "value"); HttpHeader same = header("name", "value"); HttpHeader different = header("name", "value1"); assertThat(base.equals(null), is(false)); assertThat(base.equals(base), is(true)); assertThat(base.equals(same), is(true)); assertThat(base.equals(different), is(false)); }
@Test public void createsSingleValueHeader() { HttpHeader header = header("name", "value"); assertThat(header.toString(), is("name=value")); assertThat(header.value(), is("value")); assertThat(header.values(), contains("value")); }
@Test public void createsMultipleValueHeader() { HttpHeader header = header("name", "value1", "value2"); assertThat(header.toString(), is("name=value1, value2")); assertThat(header.value(), is("value1")); assertThat(header.values(), contains("value1", "value2")); }
@Test public void canModifyPreviouslyCreatedRequest() { LiveHttpRequest request = get("/foo") .header("remove", "remove") .build(); LiveHttpRequest newRequest = request.newBuilder() .uri("/home") .header("remove", "notanymore") .build(); assertThat(newRequest.url().path(), is("/home")); assertThat(newRequest.headers(), hasItem(header("remove", "notanymore"))); }
@Test public void setsHeaders() { HttpHeaders newHeaders = new HttpHeaders.Builder() .add("foo", "bar") .build(); HttpHeaders headers = new HttpHeaders.Builder(newHeaders) .build(); assertThat(headers, contains(header("foo", "bar"))); }
@Test public void encodesToFullHttpResponse() { LiveHttpResponse response = response(CREATED) .version(HTTP_1_0) .header("HeaderName", "HeaderValue") .cookies(responseCookie("CookieName", "CookieValue").build()) .body(new ByteStream(Flux.just("foo", "bar").map(it -> new Buffer(copiedBuffer(it, UTF_8))))) .build(); HttpResponse full = Mono.from(response.aggregate(0x1000)).block(); assertThat(full.status(), is(CREATED)); assertThat(full.version(), is(HTTP_1_0)); assertThat(full.headers(), containsInAnyOrder(header("HeaderName", "HeaderValue"), header("Set-Cookie", "CookieName=CookieValue"))); assertThat(full.cookies(), contains(responseCookie("CookieName", "CookieValue").build())); assertThat(full.body(), is(bytes("foobar"))); }
@Test public void decodesToFullHttpRequest() throws Exception { LiveHttpRequest streamingRequest = post("/foo/bar", body("foo", "bar")) .version(HTTP_1_0) .header("HeaderName", "HeaderValue") .cookies(requestCookie("CookieName", "CookieValue")) .build(); HttpRequest full = Mono.from(streamingRequest.aggregate(0x1000)).block(); assertThat(full.method(), is(POST)); assertThat(full.url(), is(url("/foo/bar").build())); assertThat(full.version(), is(HTTP_1_0)); assertThat(full.headers(), containsInAnyOrder( header("HeaderName", "HeaderValue"), header("Cookie", "CookieName=CookieValue"))); assertThat(full.cookies(), contains(requestCookie("CookieName", "CookieValue"))); assertThat(full.body(), is(bytes("foobar"))); }
@Test public void canRemoveAHeader() { Object headerValue = "b"; HttpResponse response = HttpResponse.response() .header("a", headerValue) .addHeader("c", headerValue) .build(); HttpResponse shouldRemoveHeader = response.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }
@Test public void transformsRequest() { HttpRequest request = get("/foo") .header("remove", "remove") .build(); HttpRequest newRequest = request.newBuilder() .method(DELETE) .uri("/home") .header("remove", "notanymore") .build(); assertThat(newRequest.method(), is(DELETE)); assertThat(newRequest.url().path(), is("/home")); assertThat(newRequest.headers(), hasItem(header("remove", "notanymore"))); }
@Test public void canRemoveAHeader() { Object hdValue = "b"; HttpRequest request = get("/") .header("a", hdValue) .addHeader("c", hdValue) .build(); HttpRequest shouldRemoveHeader = request.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }
@Test public void canRemoveAHeader() { Object hdValue = "b"; LiveHttpRequest request = get("/") .header("a", hdValue) .addHeader("c", hdValue) .build(); LiveHttpRequest shouldRemoveHeader = request.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }
@Test public void canRemoveAHeader() { Object headerValue = "b"; LiveHttpResponse response = response() .header("a", headerValue) .addHeader("c", headerValue) .build(); LiveHttpResponse shouldRemoveHeader = response.newBuilder() .removeHeader("c") .build(); assertThat(shouldRemoveHeader.headers(), contains(header("a", "b"))); }