@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Invalid Content-Length found. -3") public void ensuresContentLengthIsPositive() { LiveHttpRequest.post("/y") .header("Content-Length", -3) .build(); }
@Test public void delegatesTheRequestIfRequestMethodIsSupported() { HttpHandler handler = mock(HttpHandler.class); HttpMethodFilteringHandler post = new HttpMethodFilteringHandler(POST, handler); LiveHttpRequest request = post("/some-uri").build(); post.handle(request, mock(HttpInterceptor.Context.class)); verify(handler).handle(eq(request), any(HttpInterceptor.Context.class)); }
@Test public void builderSetsRequestContent() throws Exception { LiveHttpRequest request = post("/foo/bar", body("Foo bar")).build(); assertThat(bytesToString(request.body()), is("Foo bar")); }
@Test public void failsIfRequestMethodIsNotSupported() throws Exception { HttpHandler handler = mock(HttpHandler.class); HttpMethodFilteringHandler post = new HttpMethodFilteringHandler(GET, handler); LiveHttpRequest request = post("/some-uri").build(); LiveHttpResponse response = Mono.from(post.handle(request, HttpInterceptorContext.create())).block(); assertThat(response.status(), is(METHOD_NOT_ALLOWED)); } }
@DataProvider(name = "emptyBodyRequests") private Object[][] emptyBodyRequests() { return new Object[][]{ {get("/foo/bar").build()}, {post("/foo/bar", new ByteStream(Flux.empty())).build()}, }; }
@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"))); }