package integration.injection; import integration.VertxNubesTestBase; import io.vertx.core.http.HttpHeaders; import io.vertx.core.json.JsonObject; import io.vertx.ext.unit.Async; import io.vertx.ext.unit.TestContext; import org.junit.Test; import static io.vertx.core.http.HttpVersion.HTTP_1_1; public class TestMethodParamInjection extends VertxNubesTestBase { @Test public void testInjectSocketAddress(TestContext context) { Async async = context.async(); getJSON("/params/injection/socketAddress", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertNotNull(json.getString("host")); // normally assertEquals("127.0.0.1") should do it, but on every machine ? async.complete(); }); }); } @Test public void testInjectHttpVersion(TestContext context) { Async async = context.async(); getJSON("/params/injection/httpVersion", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertEquals(HTTP_1_1.toString(), json.getString("version")); async.complete(); }); }); } @Test public void testInjectHeaders(TestContext context) { Async async = context.async(); String headerName = "someTestHeader"; String headerValue = "theHeaderValue"; client().get("/params/injection/headers?headerName=" + headerName, response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { context.assertEquals(headerValue, buff.toString("UTF-8")); async.complete(); }); }).putHeader(HttpHeaders.ACCEPT, "text/plain").putHeader(headerName, headerValue).end(); } @Test public void testRequest(TestContext context) { Async async = context.async(); String path = "/params/injection/request"; client().get(path, response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { context.assertEquals(path, buff.toString("UTF-8")); async.complete(); }); }).putHeader(HttpHeaders.ACCEPT, "text/plain").end(); } @Test public void testEventBus(TestContext context) { Async async = context.async(); String path = "/params/injection/eventBus"; client().get(path, response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { context.assertNotNull(buff.toString("UTF-8")); async.complete(); }); }).putHeader(HttpHeaders.ACCEPT, "text/plain").end(); } }