Search in sources :

Example 1 with HttpClient

use of io.vertx.mutiny.core.http.HttpClient 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