package org.jboss.weld.vertx.examples.translator; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import io.vertx.core.Vertx; import io.vertx.core.http.HttpClient; import io.vertx.core.http.HttpClientRequest; import io.vertx.core.http.HttpMethod; import io.vertx.ext.unit.Async; import io.vertx.ext.unit.TestContext; import io.vertx.ext.unit.junit.VertxUnitRunner; /** * * @author Martin Kouba */ @RunWith(VertxUnitRunner.class) public class TranslatorExampleTest { static final long DEFAULT_TIMEOUT = 15000; private Vertx vertx; @Before public void init(TestContext context) { vertx = Vertx.vertx(); vertx.deployVerticle(new TranslatorVerticle(), context.asyncAssertSuccess()); } @After public void close(TestContext context) { vertx.close(context.asyncAssertSuccess()); } @Test(timeout = DEFAULT_TIMEOUT) public void testTranslator(TestContext context) throws InterruptedException { Async async = context.async(); HttpClient client = vertx.createHttpClient(); HttpClientRequest request = client.request(HttpMethod.POST, 8080, "localhost", "/translate"); request.putHeader("Content-type", "application/x-www-form-urlencoded"); request.handler((response) -> { if (response.statusCode() == 200) { response.bodyHandler((buffer) -> { context.assertEquals("[{\"word\":\"Hello\",\"translations\":[\"ahoj\",\"dobry den\"]},{\"word\":\"world\",\"translations\":[\"svet\"]}]", buffer.toString()); client.close(); async.complete(); }); } }); request.end("sentence=Hello world"); } }