Search in sources :

Example 6 with HttpClientResponse

use of io.vertx.reactivex.core.http.HttpClientResponse in project knotx by Cognifide.

the class KnotxServerRoutingTest method request.

private static Observable<HttpClientResponse> request(HttpClient client, HttpMethod method, int port, String domain, String uri, Action1<HttpClientRequest> requestBuilder) {
    return Observable.unsafeCreate(subscriber -> {
        HttpClientRequest req = client.request(method, port, domain, uri);
        Observable<HttpClientResponse> resp = req.toObservable();
        resp.subscribe(subscriber);
        requestBuilder.call(req);
        req.end();
    });
}
Also used : HttpClientRequest(io.vertx.reactivex.core.http.HttpClientRequest) HttpClientResponse(io.vertx.reactivex.core.http.HttpClientResponse)

Example 7 with HttpClientResponse

use of io.vertx.reactivex.core.http.HttpClientResponse in project knotx by Cognifide.

the class SampleApplicationTest method testPostRequest.

private void testPostRequest(TestContext context, String url, Map<String, String> formData, String expectedResponseFile, boolean ajaxCall) {
    HttpClient client = Vertx.newInstance(vertx.vertx()).createHttpClient();
    Async async = context.async();
    Observable<HttpClientResponse> request = request(client, HttpMethod.POST, KNOTX_SERVER_PORT, KNOTX_SERVER_ADDRESS, url, req -> {
        String bodyForm = formData.entrySet().stream().map(entry -> entry.getKey() + "=" + entry.getValue()).reduce((p1, p2) -> p1 + "&" + p2).get();
        req.headers().set("content-length", String.valueOf(bodyForm.length()));
        req.headers().set("content-type", "application/x-www-form-urlencoded");
        if (ajaxCall) {
            req.headers().set("X-Requested-With", "XMLHttpRequest");
        }
        req.write(bodyForm);
    });
    request.subscribe(resp -> resp.bodyHandler(body -> {
        context.assertEquals(resp.statusCode(), HttpResponseStatus.OK.code());
        try {
            context.assertEquals(Jsoup.parse(body.toString()).body().html(), Jsoup.parse(FileReader.readText(expectedResponseFile)).body().html());
        } catch (Exception e) {
            context.fail(e);
        }
        async.complete();
    }));
}
Also used : TestContext(io.vertx.ext.unit.TestContext) Async(io.vertx.ext.unit.Async) RunWith(org.junit.runner.RunWith) HttpResponseStatus(io.netty.handler.codec.http.HttpResponseStatus) Test(org.junit.Test) Logback(io.knotx.junit.rule.Logback) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) Action1(rx.functions.Action1) Maps(com.google.common.collect.Maps) RuleChain(org.junit.rules.RuleChain) HttpClientRequest(io.vertx.reactivex.core.http.HttpClientRequest) Vertx(io.vertx.reactivex.core.Vertx) Rule(org.junit.Rule) FileReader(io.knotx.junit.util.FileReader) HttpMethod(io.vertx.core.http.HttpMethod) Map(java.util.Map) Observable(io.reactivex.Observable) HttpClient(io.vertx.reactivex.core.http.HttpClient) Jsoup(org.jsoup.Jsoup) KnotxConfiguration(io.knotx.junit.rule.KnotxConfiguration) RunTestOnContext(io.vertx.ext.unit.junit.RunTestOnContext) HttpClientResponse(io.vertx.reactivex.core.http.HttpClientResponse) TestVertxDeployer(io.knotx.junit.rule.TestVertxDeployer) Async(io.vertx.ext.unit.Async) HttpClient(io.vertx.reactivex.core.http.HttpClient) HttpClientResponse(io.vertx.reactivex.core.http.HttpClientResponse)

Aggregations

HttpClientResponse (io.vertx.reactivex.core.http.HttpClientResponse)7 HttpClientRequest (io.vertx.reactivex.core.http.HttpClientRequest)6 HttpClient (io.vertx.reactivex.core.http.HttpClient)4 HttpMethod (io.vertx.core.http.HttpMethod)3 Runner (io.vertx.example.util.Runner)2 AbstractVerticle (io.vertx.reactivex.core.AbstractVerticle)2 Maps (com.google.common.collect.Maps)1 KnotxConfiguration (io.knotx.junit.rule.KnotxConfiguration)1 Logback (io.knotx.junit.rule.Logback)1 TestVertxDeployer (io.knotx.junit.rule.TestVertxDeployer)1 FileReader (io.knotx.junit.util.FileReader)1 HttpResponseStatus (io.netty.handler.codec.http.HttpResponseStatus)1 Flowable (io.reactivex.Flowable)1 Observable (io.reactivex.Observable)1 JsonObject (io.vertx.core.json.JsonObject)1 Async (io.vertx.ext.unit.Async)1 TestContext (io.vertx.ext.unit.TestContext)1 RunTestOnContext (io.vertx.ext.unit.junit.RunTestOnContext)1 VertxUnitRunner (io.vertx.ext.unit.junit.VertxUnitRunner)1 Vertx (io.vertx.reactivex.core.Vertx)1