package org.jooby;
import static org.junit.Assert.assertEquals;
import java.util.Date;
import java.util.Optional;
import org.junit.Test;
import com.google.common.collect.Lists;
public class ResultTest {
@Test
public void sillyJacocoWithStaticMethods() {
new Results();
}
@Test
public void entityAndStatus() {
Result result = Results.with("x", 200);
assertEquals("x", result.ifGet().get());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.OK, result.status().get());
}
@Test
public void json() {
Result result = Results.json("{}");
assertEquals("{}", result.ifGet().get());
assertEquals(MediaType.json, result.type().get());
assertEquals(Status.OK, result.status().get());
}
@Test
public void xml() {
Result result = Results.xml("{}");
assertEquals("{}", result.ifGet().get());
assertEquals(MediaType.xml, result.type().get());
assertEquals(Status.OK, result.status().get());
}
@Test
public void accepted() {
Result result = Results.accepted();
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.ACCEPTED, result.status().get());
}
@Test
public void acceptedWithConent() {
Result result = Results.accepted("s");
assertEquals(Optional.empty(), result.type());
assertEquals("s", result.ifGet().get());
assertEquals(Status.ACCEPTED, result.status().get());
}
@Test
public void ok() {
Result result = Results.ok();
assertEquals(Optional.empty(), result.ifGet());
assertEquals((Object) null, result.get());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.OK, result.status().get());
}
@Test
public void okWithConent() {
Result result = Results.ok("s");
assertEquals(Optional.empty(), result.type());
assertEquals("s", result.ifGet().get());
assertEquals(Status.OK, result.status().get());
}
@Test
public void withStatusCode() {
Result result = Results.with(200);
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.OK, result.status().get());
}
@Test
public void chainStatusCode() {
Result result = Results.with("b").status(200);
assertEquals(Optional.empty(), result.type());
assertEquals("b", result.ifGet().get());
assertEquals(Status.OK, result.status().get());
}
@Test
public void type() {
Result result = Results.with("b").type("json");
assertEquals(MediaType.json, result.type().get());
assertEquals("b", result.ifGet().get());
assertEquals(Optional.empty(), result.status());
}
@Test
public void header() {
Date date = new Date();
Result result = Results.ok().header("char", 'c')
.header("byte", (byte) 3)
.header("short", (short) 4)
.header("int", 5)
.header("long", 6l)
.header("float", 7f)
.header("double", 8d)
.header("date", date)
.header("list", 1, 2, 3);
assertEquals('c', result.headers().get("char"));
assertEquals((byte) 3, result.headers().get("byte"));
assertEquals((short) 4, result.headers().get("short"));
assertEquals(5, result.headers().get("int"));
assertEquals((long) 6, result.headers().get("long"));
assertEquals(7.0f, result.headers().get("float"));
assertEquals(8.0d, result.headers().get("double"));
assertEquals(date, result.headers().get("date"));
assertEquals(Lists.newArrayList(1, 2, 3), result.headers().get("list"));
}
@Test
public void chainStatus() {
Result result = Results.with("b").status(Status.OK);
assertEquals(Optional.empty(), result.type());
assertEquals("b", result.ifGet().get());
assertEquals(Status.OK, result.status().get());
}
@Test
public void noContent() {
Result result = Results.noContent();
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.NO_CONTENT, result.status().get());
}
@Test
public void withStatus() {
Result result = Results.with(Status.CREATED);
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.CREATED, result.status().get());
}
@Test
public void resultWithConent() {
Result result = Results.with("s");
assertEquals(Optional.empty(), result.type());
assertEquals(Optional.empty(), result.status());
assertEquals("s", result.ifGet().get());
}
@Test
public void moved() {
Result result = Results.moved("/location");
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.MOVED_PERMANENTLY, result.status().get());
assertEquals("/location", result.headers().get("location"));
}
@Test
public void redirect() {
Result result = Results.redirect("/location");
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.FOUND, result.status().get());
assertEquals("/location", result.headers().get("location"));
}
@Test
public void seeOther() {
Result result = Results.seeOther("/location");
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.SEE_OTHER, result.status().get());
assertEquals("/location", result.headers().get("location"));
}
@Test
public void temporaryRedirect() {
Result result = Results.tempRedirect("/location");
assertEquals(Optional.empty(), result.ifGet());
assertEquals(Optional.empty(), result.type());
assertEquals(Status.TEMPORARY_REDIRECT, result.status().get());
assertEquals("/location", result.headers().get("location"));
}
}