Search in sources :

Example 1 with Router

use of io.vertx.mutiny.ext.web.Router in project smallrye-mutiny-vertx-bindings by smallrye.

the class HealthCheckTest method testHealthCheckWithVertxWeb.

@Test
public void testHealthCheckWithVertxWeb() {
    HealthChecks hc = HealthChecks.create(vertx);
    HealthCheckHandler handler = HealthCheckHandler.createWithHealthChecks(hc);
    hc.register("test", Uni.createFrom().item(Status::OK));
    Router router = Router.router(vertx);
    router.get("/health*").handler(handler::handle);
    vertx.createHttpServer().requestHandler(router::handle).listenAndAwait(8085);
    WebClient webClient = WebClient.create(vertx);
    HttpResponse<Buffer> response1 = webClient.getAbs("http://localhost:8085/health").send().await().indefinitely();
    assertEquals(response1.statusCode(), 200);
    assertEquals(response1.bodyAsJsonObject().getString("outcome"), "UP");
    HttpResponse<Buffer> response2 = webClient.getAbs("http://localhost:8085/health/test").send().await().indefinitely();
    assertEquals(response2.statusCode(), 200);
    assertEquals(response2.bodyAsJsonObject().getString("outcome"), "UP");
}
Also used : Buffer(io.vertx.mutiny.core.buffer.Buffer) HealthChecks(io.vertx.mutiny.ext.healthchecks.HealthChecks) Router(io.vertx.mutiny.ext.web.Router) HealthCheckHandler(io.vertx.mutiny.ext.healthchecks.HealthCheckHandler) WebClient(io.vertx.mutiny.ext.web.client.WebClient) Test(org.junit.Test)

Example 2 with Router

use of io.vertx.mutiny.ext.web.Router in project smallrye-mutiny-vertx-bindings by smallrye.

the class MicrometerMetricsTest method test.

@Test
public void test() {
    Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(new MicrometerMetricsOptions().setPrometheusOptions(new VertxPrometheusOptions().setEnabled(true)).setEnabled(true)));
    Router router = Router.router(vertx);
    router.route("/metrics").handler(x -> PrometheusScrapingHandler.create().handle(x));
    HttpServer server = vertx.createHttpServer().requestHandler(router).listenAndAwait(8080);
    WebClient client = WebClient.create(vertx, new WebClientOptions().setDefaultPort(8080));
    String s = client.get("/metrics").sendAndAwait().bodyAsString();
    assertThat(s).contains("vertx_http_client_active_connections");
    MetricsService metricsService = MetricsService.create(server);
    JsonObject metrics = metricsService.getMetricsSnapshot();
    System.out.println(metrics);
    assertThat(metrics.getJsonArray("vertx.http.server.active.connections")).isNotNull();
}
Also used : WebClientOptions(io.vertx.ext.web.client.WebClientOptions) VertxPrometheusOptions(io.vertx.micrometer.VertxPrometheusOptions) HttpServer(io.vertx.mutiny.core.http.HttpServer) Router(io.vertx.mutiny.ext.web.Router) JsonObject(io.vertx.core.json.JsonObject) Vertx(io.vertx.mutiny.core.Vertx) VertxOptions(io.vertx.core.VertxOptions) WebClient(io.vertx.mutiny.ext.web.client.WebClient) MicrometerMetricsOptions(io.vertx.micrometer.MicrometerMetricsOptions) Test(org.junit.Test)

Example 3 with Router

use of io.vertx.mutiny.ext.web.Router 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

Router (io.vertx.mutiny.ext.web.Router)3 WebClient (io.vertx.mutiny.ext.web.client.WebClient)3 Test (org.junit.Test)3 Vertx (io.vertx.mutiny.core.Vertx)2 Buffer (io.vertx.mutiny.core.buffer.Buffer)2 Multi (io.smallrye.mutiny.Multi)1 Uni (io.smallrye.mutiny.Uni)1 VertxOptions (io.vertx.core.VertxOptions)1 RequestOptions (io.vertx.core.http.RequestOptions)1 JsonObject (io.vertx.core.json.JsonObject)1 WebClientOptions (io.vertx.ext.web.client.WebClientOptions)1 MicrometerMetricsOptions (io.vertx.micrometer.MicrometerMetricsOptions)1 VertxPrometheusOptions (io.vertx.micrometer.VertxPrometheusOptions)1 HttpClient (io.vertx.mutiny.core.http.HttpClient)1 HttpClientRequest (io.vertx.mutiny.core.http.HttpClientRequest)1 HttpServer (io.vertx.mutiny.core.http.HttpServer)1 HealthCheckHandler (io.vertx.mutiny.ext.healthchecks.HealthCheckHandler)1 HealthChecks (io.vertx.mutiny.ext.healthchecks.HealthChecks)1 HttpRequest (io.vertx.mutiny.ext.web.client.HttpRequest)1 HttpResponse (io.vertx.mutiny.ext.web.client.HttpResponse)1