package org.jooby.session;
import static org.junit.Assert.assertEquals;
import org.jooby.Session;
import org.jooby.test.ServerFeature;
import org.junit.Test;
public class SessionDataFeature extends ServerFeature {
{
get("/s1", (req, rsp) -> {
Session session = req.session();
assertEquals(false, session.isSet("v1"));
session.set("v1", "v1");
assertEquals(true, session.isSet("v1"));
rsp.send(session.attributes());
});
get("/s2", (req, rsp) -> {
Session session = req.session();
rsp.send(session.get("v1").toOptional().orElse(""));
session.unset("v1");
});
get("/unset-all", (req, rsp) -> {
Session session = req.session();
rsp.send(session.get("v1").value());
session.unset();
});
}
@Test
public void locals() throws Exception {
request()
.get("/s1")
.expect("{v1=v1}")
.request(r1 ->
r1.get("/s2")
.expect("v1")
.request(r2 ->
r2.get("/s2")
.expect("")
)
);
}
@Test
public void unsetall() throws Exception {
request()
.get("/s1")
.expect("{v1=v1}")
.request(r1 ->
r1.get("/unset-all")
.expect("v1")
.request(r2 ->
r2.get("/s2")
.expect("")
.request(r3 ->
r3.get("/s2")
.expect("")
)
)
);
}
}