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 org.junit.Before; import org.junit.Test; import java.util.Date; public class HeadersParametersTest extends VertxNubesTestBase { @Before public void setUp(TestContext context) throws Exception { super.setUp(context); } @Test public void nonMandatoryParamPresent(TestContext context) { Async async = context.async(); Date now = new Date(); client().get("/headers/facultative", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buffer -> { context.assertEquals(Long.toString(now.getTime()), buffer.toString("UTF-8")); async.complete(); }); }).putHeader("X-Date", DateUtils.INSTANCE.formatIso8601(now)).end(); } @Test public void nonMandatoryParamAbsent(TestContext context) { Async async = context.async(); client().get("/headers/facultative", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buffer -> { context.assertEquals("null", buffer.toString("UTF-8")); async.complete(); }); }).end(); } @Test public void mandatoryParamAbsent(TestContext context) { Async async = context.async(); client().get("/headers/mandatory", response -> { context.assertEquals(400, response.statusCode()); response.bodyHandler(buff -> { String msg = buff.toString("UTF-8"); context.assertTrue(msg.contains("mandatory")); async.complete(); }); }).end(); } @Test public void echoByName(TestContext context) { Async async = context.async(); String value = "Pluto"; client().get("/headers/echoByName", response -> { context.assertEquals(200, response.statusCode()); response.bodyHandler(buffer -> { context.assertEquals(value, buffer.toString("UTF-8")); async.complete(); }); }).putHeader("someHeader", value).end(); } @Test public void wrongHeaderType(TestContext context) { Async async = context.async(); String header = "X-Date"; String value = "invalidDate"; client().get("/headers/facultative", response -> { context.assertEquals(400, response.statusCode()); response.bodyHandler(buffer -> { System.out.println(buffer.toString("UTF-8")); context.assertEquals("Invalid value : " + value + " for header : " + header, buffer.toString("UTF-8")); async.complete(); }); }).putHeader(header, value).end(); } @Test public void wrongHeadersType(TestContext context) { Async async = context.async(); String header = "X-Date"; String value = "invalidDate"; client().get("/headers/wrongHeaders", response -> { context.assertEquals(500, response.statusCode()); async.complete(); }).putHeader(header, value).end(); } }