package integration.injection; import integration.TestVerticle; import integration.VertxNubesTestBase; import io.vertx.core.buffer.Buffer; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import io.vertx.ext.unit.Async; import io.vertx.ext.unit.TestContext; import mock.domains.Dog; import org.junit.Test; public class TestInject extends VertxNubesTestBase { @Test public void testInjectService(TestContext context) { Async async = context.async(); int i = 2; Dog dog = TestVerticle.dogService.getDog(i); getJSON("/inject/service?idx=" + i, response -> { response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString()); context.assertEquals(dog.getName(), json.getString("name")); async.complete(); }); }); } @Test public void testInjectClass(TestContext context) { Async async = context.async(); Dog snoop = TestVerticle.SNOOPY; getJSON("/inject/class", response -> { response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString()); context.assertEquals(snoop.getName(), json.getString("name")); async.complete(); }); }); } @Test public void testInjectSocket(TestContext context) { Async async = context.async(); Dog snoop = TestVerticle.SNOOPY; client().websocket("/injectedSocket/websocket", sock -> { sock.handler(buff -> { context.assertEquals(snoop.getName(), buff.toString("UTF-8")); async.complete(); }); sock.write(Buffer.buffer("something")); }); } @Test public void testInjectRouter(TestContext context) { Async async = context.async(); getJSON("/inject/router", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { JsonObject json = new JsonObject(buff.toString("UTF-8")); context.assertNotNull(json.getString("router")); async.complete(); }); }); } @Test public void testReadBodyAsJsonObject(TestContext context) { Async async = context.async(); JsonObject snoop = new JsonObject().put("name", "Snoopy").put("breed", "Beagle"); sendJSON("/inject/readBodyAsJsonObject", snoop, response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { context.assertEquals(snoop, new JsonObject(buff.toString("UTF-8"))); async.complete(); }); }); } @Test public void testReadBodyAsJsonArray(TestContext context) { Async async = context.async(); JsonObject snoop = new JsonObject().put("name", "Snoopy").put("breed", "Beagle"); JsonObject snowy = new JsonObject().put("name", "Snowy").put("breed", "Terrier"); JsonArray dogs = new JsonArray(); dogs.add(snoop).add(snowy); sendJSON("/inject/readBodyAsJsonArray", dogs, response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buff -> { context.assertEquals(dogs, new JsonArray(buff.toString("UTF-8"))); async.complete(); }); }); } @Test public void testWrongBodyAsJsonArray(TestContext context) { Async async = context.async(); sendJSON("/inject/readBodyAsJsonArray", "{}", response -> { context.assertEquals(400, response.statusCode()); async.complete(); }); } @Test public void testWrongBodyAsJsonObject(TestContext context) { Async async = context.async(); sendJSON("/inject/readBodyAsJsonObject", "[]", response -> { context.assertEquals(400, response.statusCode()); async.complete(); }); } }