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();
});
});
}
}