package org.jooby.ehcache; import org.jooby.Session; import org.jooby.test.ServerFeature; import org.junit.Test; import com.typesafe.config.ConfigFactory; public class EhcacheSessionStoreFeature extends ServerFeature { { use(ConfigFactory.parseResources(getClass(), "ehcache-sessions.conf")); use(new Eh()); session(EhSessionStore.class); get("/eh/create/session", req -> { Session session = req.session(); session.set("k1", "v1"); return session.get("k1").value(); }); get("/eh/get/session", req -> { Session session = req.session(); return session.get("k1").toOptional(); }); get("/eh/destroy/session", req -> { Session session = req.session(); session.destroy(); return "done"; }); } @Test public void create() throws Exception { request().get("/eh/get/session") .expect("Optional.empty"); request().get("/eh/create/session") .expect("v1"); Thread.sleep(300L); request().get("/eh/get/session") .expect("Optional[v1]"); Thread.sleep(2500L); // timeIdle will expire request().get("/eh/get/session") .expect("Optional.empty"); // recreate request().get("/eh/create/session") .expect("v1"); // get request().get("/eh/get/session") .expect("Optional[v1]"); // destroy request().get("/eh/destroy/session") .expect(200); // get request().get("/eh/get/session") .expect("Optional.empty"); } }