content: package integration.cookies;
  
  import integration.VertxNubesTestBase;
  import io.vertx.ext.unit.Async;
  import io.vertx.ext.unit.TestContext;
  import org.junit.Test;
  
  import static io.vertx.core.http.HttpHeaders.COOKIE;
  import static io.vertx.core.http.HttpHeaders.SET_COOKIE;
  
  public class CookieTest extends VertxNubesTestBase {
    @Test
    public void testNoCookieValue(TestContext context) {
      Async async = context.async();
      client().getNow("/cookies/noCookie", response -> {
        context.assertNull(response.headers().get(SET_COOKIE));
        async.complete();
      });
    }
  
    @Test
    public void testSetCookieValue(TestContext context) {
      Async async = context.async();
      client().getNow("/cookies/setCookie", response -> {
        context.assertNotNull(response.headers().get(SET_COOKIE));
        async.complete();
      });
    }
  
    @Test
    public void testReadCookie(TestContext context) {
      String key = "dog";
      String value = "Cubitus";
      Async async = context.async();
      client().get("/cookies/echo", response -> {
        response.bodyHandler(buff -> {
          context.assertEquals(value, buff.toString("UTF-8"));
          async.complete();
        });
      }).putHeader(COOKIE, key + "=" + value).end();
    }
  
    @Test
    public void testReadCookieByName(TestContext context) {
      String key = "dog";
      String value = "Milou";
      Async async = context.async();
      client().get("/cookies/echoByName", response -> {
        response.bodyHandler(buff -> {
          context.assertEquals(value, buff.toString("UTF-8"));
          async.complete();
        });
      }).putHeader(COOKIE, key + "=" + value).end();
    }
  
    @Test
    public void testReadCookieObject(TestContext context) {
      String key = "dog";
      String value = "Milou";
      Async async = context.async();
      client().get("/cookies/echoObject", response -> {
        response.bodyHandler(buff -> {
          context.assertEquals(value, buff.toString("UTF-8"));
          async.complete();
        });
      }).putHeader(COOKIE, key + "=" + value).end();
    }
  
    @Test
    public void testCookieNotSet(TestContext context) {
      Async async = context.async();
      client().get("/cookies/echoObject", response -> {
        context.assertEquals(400, response.statusCode());
        async.complete();
      }).end();
    }
  }
  