Search in sources :

Example 1 with HttpClientRequest

use of io.vertx.mutiny.core.http.HttpClientRequest in project smallrye-mutiny-vertx-bindings by smallrye.

the class RouterTest method testRouter.

@Test
public void testRouter() throws InterruptedException {
    Router router = Router.router(vertx);
    router.get("/").handler(rc -> {
        rc.response().endAndForget("hello");
    });
    router.get("/assets/*").handler(StaticHandler.create("src/test/resources/assets"));
    router.post().handler(BodyHandler.create());
    router.post("/post").handler(rc -> rc.response().endAndForget(rc.getBodyAsString()));
    vertx.createHttpServer().requestHandler(router::handle).listenAndAwait(8085);
    HttpClient client = vertx.createHttpClient();
    CountDownLatch latch1 = new CountDownLatch(1);
    RequestOptions req1 = new RequestOptions().setAbsoluteURI("http://localhost:8085");
    HttpClientRequest request1 = client.requestAndAwait(req1);
    request1.response().subscribe().with(resp -> resp.toMulti().subscribe().with(buffer -> {
        assertEquals(buffer.toString(), "hello");
        latch1.countDown();
    }));
    request1.exceptionHandler(t -> System.out.println("Got failure " + t)).endAndForget();
    assertTrue(latch1.await(1, TimeUnit.SECONDS));
    CountDownLatch latch2 = new CountDownLatch(1);
    RequestOptions req2 = new RequestOptions().setAbsoluteURI("http://localhost:8085/assets/test.txt");
    HttpClientRequest request2 = client.requestAndAwait(req2);
    request2.response().subscribe().with(resp -> {
        resp.toMulti().subscribe().with(buffer -> {
            assertEquals(buffer.toString(), "This is a test.");
            latch2.countDown();
        });
    });
    request2.exceptionHandler(t -> System.out.println("Got failure " + t)).endAndForget();
    assertTrue(latch2.await(1, TimeUnit.SECONDS));
    CountDownLatch latch3 = new CountDownLatch(1);
    WebClient webClient = WebClient.create(vertx);
    HttpRequest<Buffer> request3 = webClient.postAbs("http://localhost:8085/post");
    Uni<HttpResponse<Buffer>> uni = request3.sendStream(Multi.createFrom().items("Hello", " ", "World", "!").map(Buffer::buffer));
    uni.subscribe().with(r -> {
        assertEquals(r.bodyAsString(), "Hello World!");
        latch3.countDown();
    });
    assertTrue(latch3.await(1, TimeUnit.SECONDS));
}
Also used : HttpRequest(io.vertx.mutiny.ext.web.client.HttpRequest) Assert.assertTrue(org.junit.Assert.assertTrue) HttpResponse(io.vertx.mutiny.ext.web.client.HttpResponse) Test(org.junit.Test) RequestOptions(io.vertx.core.http.RequestOptions) Multi(io.smallrye.mutiny.Multi) Uni(io.smallrye.mutiny.Uni) StaticHandler(io.vertx.mutiny.ext.web.handler.StaticHandler) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) Router(io.vertx.mutiny.ext.web.Router) BodyHandler(io.vertx.mutiny.ext.web.handler.BodyHandler) Buffer(io.vertx.mutiny.core.buffer.Buffer) After(org.junit.After) Vertx(io.vertx.mutiny.core.Vertx) HttpClientRequest(io.vertx.mutiny.core.http.HttpClientRequest) WebClient(io.vertx.mutiny.ext.web.client.WebClient) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) HttpClient(io.vertx.mutiny.core.http.HttpClient) Buffer(io.vertx.mutiny.core.buffer.Buffer) HttpClientRequest(io.vertx.mutiny.core.http.HttpClientRequest) RequestOptions(io.vertx.core.http.RequestOptions) HttpClient(io.vertx.mutiny.core.http.HttpClient) Router(io.vertx.mutiny.ext.web.Router) HttpResponse(io.vertx.mutiny.ext.web.client.HttpResponse) CountDownLatch(java.util.concurrent.CountDownLatch) WebClient(io.vertx.mutiny.ext.web.client.WebClient) Test(org.junit.Test)

Aggregations

Multi (io.smallrye.mutiny.Multi)1 Uni (io.smallrye.mutiny.Uni)1 RequestOptions (io.vertx.core.http.RequestOptions)1 Vertx (io.vertx.mutiny.core.Vertx)1 Buffer (io.vertx.mutiny.core.buffer.Buffer)1 HttpClient (io.vertx.mutiny.core.http.HttpClient)1 HttpClientRequest (io.vertx.mutiny.core.http.HttpClientRequest)1 Router (io.vertx.mutiny.ext.web.Router)1 HttpRequest (io.vertx.mutiny.ext.web.client.HttpRequest)1 HttpResponse (io.vertx.mutiny.ext.web.client.HttpResponse)1 WebClient (io.vertx.mutiny.ext.web.client.WebClient)1 BodyHandler (io.vertx.mutiny.ext.web.handler.BodyHandler)1 StaticHandler (io.vertx.mutiny.ext.web.handler.StaticHandler)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 TimeUnit (java.util.concurrent.TimeUnit)1 After (org.junit.After)1 Assert.assertEquals (org.junit.Assert.assertEquals)1 Assert.assertTrue (org.junit.Assert.assertTrue)1 Before (org.junit.Before)1 Test (org.junit.Test)1