package integration.params; import com.github.aesteve.vertx.nubes.utils.DateUtils; import integration.VertxNubesTestBase; import io.vertx.ext.unit.Async; import io.vertx.ext.unit.TestContext; import mock.controllers.params.QueryParametersTestController.Animal; import org.junit.Test; import java.util.Date; public class QueryParametersTest extends VertxNubesTestBase { @Test public void mandatoryParam(TestContext context) { Async async = context.async(); client().getNow("/params/query/string", response -> { context.assertEquals(400, response.statusCode()); async.complete(); }); } @Test public void testString(TestContext context) { String myString = "Snoopy"; Async async = context.async(); client().getNow("/params/query/string?parameter=" + myString, response -> { response.bodyHandler(buff -> { context.assertEquals(myString, buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testInt(TestContext context) { Integer myInt = 123; Async async = context.async(); client().getNow("/params/query/int?parameter=" + myInt, response -> { response.bodyHandler(buff -> { context.assertEquals(myInt.toString(), buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testLong(TestContext context) { Long myInt = 1234l; Async async = context.async(); client().getNow("/params/query/long?parameter=" + myInt, response -> { response.bodyHandler(buff -> { context.assertEquals(myInt.toString(), buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testFloat(TestContext context) { Float myFloat = 123.45f; Async async = context.async(); client().getNow("/params/query/float?parameter=" + myFloat, response -> { response.bodyHandler(buff -> { context.assertEquals(myFloat.toString(), buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testEnum(TestContext context) { Animal animal = Animal.CAT; Async async = context.async(); client().getNow("/params/query/enum?parameter=" + animal, response -> { response.bodyHandler(buff -> { context.assertEquals(animal.toString(), buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testDate(TestContext context) throws Exception { Date date = new Date(); String iso = DateUtils.INSTANCE.formatIso8601(date); Async async = context.async(); client().getNow("/params/query/date?parameter=" + iso, response -> { response.bodyHandler(buff -> { context.assertEquals(Long.toString(date.getTime()), buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testParamByName(TestContext context) throws Exception { String name = "Snoopy"; Async async = context.async(); client().getNow("/params/query/byName?dog=" + name, response -> { response.bodyHandler(buff -> { context.assertEquals(name, buff.toString("UTF-8")); async.complete(); }); }); } @Test public void testWrongParam(TestContext context) { String name = "parameter"; String value = "invalidDate"; Async async = context.async(); client().getNow("/params/query/date?" + name + "=" + value, response -> { context.assertEquals(400, response.statusCode()); response.bodyHandler(buff -> { context.assertEquals("Invalid value : " + value + " for request parameter : " + name, buff.toString("UTF-8")); async.complete(); }); }); } }