package org.jooby;
import static org.junit.Assert.assertEquals;
import java.util.Optional;
import org.jooby.Cookie.Definition;
import org.junit.Test;
public class CookieDefinitionTest {
@Test
public void newCookieDefDefaults() {
Definition def = new Cookie.Definition();
assertEquals(Optional.empty(), def.name());
assertEquals(Optional.empty(), def.comment());
assertEquals(Optional.empty(), def.domain());
assertEquals(Optional.empty(), def.httpOnly());
assertEquals(Optional.empty(), def.maxAge());
assertEquals(Optional.empty(), def.path());
assertEquals(Optional.empty(), def.secure());
assertEquals(Optional.empty(), def.value());
}
@Test
public void newNamedCookieDef() {
Definition def = new Cookie.Definition("name", "");
assertEquals("name", def.name().get());
assertEquals("name", def.toCookie().name());
assertEquals(Optional.empty(), def.comment());
assertEquals(Optional.empty(), def.domain());
assertEquals(Optional.empty(), def.httpOnly());
assertEquals(Optional.empty(), def.maxAge());
assertEquals(Optional.empty(), def.path());
assertEquals(Optional.empty(), def.secure());
assertEquals(Optional.empty(), def.value());
}
@Test(expected = NullPointerException.class)
public void newNullNameCookieDef() {
new Cookie.Definition(null, "x");
}
@Test
public void newValuedCookieDef() {
Definition def = new Cookie.Definition("name", "v");
assertEquals("name", def.name().get());
assertEquals("v", def.value().get());
assertEquals("v", def.toCookie().value().get());
assertEquals(Optional.empty(), def.comment());
assertEquals(Optional.empty(), def.domain());
assertEquals(Optional.empty(), def.httpOnly());
assertEquals(Optional.empty(), def.maxAge());
assertEquals(Optional.empty(), def.path());
assertEquals(Optional.empty(), def.secure());
}
@Test(expected = NullPointerException.class)
public void newNullValueCookieDef() {
new Cookie.Definition("name", null);
}
@Test
public void cookieWithComment() {
Definition def = new Cookie.Definition("name", "c");
assertEquals(Optional.empty(), def.comment());
assertEquals("a comment", def.comment("a comment").comment().get());
assertEquals("a comment", def.toCookie().comment().get());
}
@Test
public void cookieWithDomain() {
Definition def = new Cookie.Definition("name", "");
assertEquals(Optional.empty(), def.domain());
assertEquals("jooby.org", def.domain("jooby.org").domain().get());
assertEquals("jooby.org", def.toCookie().domain().get());
}
@Test
public void cookieHttpOnly() {
Definition def = new Cookie.Definition("name", "x");
assertEquals(Optional.empty(), def.httpOnly());
assertEquals(true, def.httpOnly(true).httpOnly().get());
assertEquals(true, def.toCookie().httpOnly());
}
@Test
public void cookieMaxAge() {
Definition def = new Cookie.Definition("name", "s");
assertEquals(Optional.empty(), def.maxAge());
assertEquals(123L, (long) def.maxAge(123).maxAge().get());
assertEquals(123, def.toCookie().maxAge());
}
@Test
public void cookiePath() {
Definition def = new Cookie.Definition("name", "x");
assertEquals(Optional.empty(), def.path());
assertEquals("/", def.path("/").path().get());
assertEquals("/", def.toCookie().path().get());
}
@Test
public void cookieSecure() {
Definition def = new Cookie.Definition("name", "q");
assertEquals(Optional.empty(), def.secure());
assertEquals(true, def.secure(true).secure().get());
assertEquals(true, def.toCookie().secure());
}
@Test
public void toStr() {
Definition def = new Cookie.Definition("name", "q");
assertEquals("name=q;Version=1", def.toString());
}
}