package org.jooby.hazelcast;
import org.jooby.Session;
import org.jooby.test.ServerFeature;
import org.junit.Ignore;
import org.junit.Test;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValueFactory;
@Ignore
public class HazelcastSessionStoreIntSecsFeature extends ServerFeature {
{
use(ConfigFactory.empty()
.withValue("hazelcast.session.timeout", ConfigValueFactory.fromAnyRef(2)));
use(new Hcast());
session(HcastSessionStore.class);
get("/hcast2/create/session", req -> {
Session session = req.session();
session.set("k1", "v1");
return session.get("k1").value();
});
get("/hcast2/get/session", req -> {
Session session = req.session();
return session.get("k1").toOptional();
});
get("/hcast2/destroy/session", req -> {
Session session = req.session();
session.destroy();
return "done";
});
}
@Test
public void create() throws Exception {
request().get("/hcast2/get/session")
.expect("Optional.empty");
request().get("/hcast2/create/session")
.expect("v1");
Thread.sleep(300L);
request().get("/hcast2/get/session")
.expect("Optional[v1]");
Thread.sleep(2500L);
// timeIdle will expire
request().get("/hcast2/get/session")
.expect("Optional.empty");
// recreate
request().get("/hcast2/create/session")
.expect("v1");
// get
request().get("/hcast2/get/session")
.expect("Optional[v1]");
// destroy
request().get("/hcast2/destroy/session")
.expect(200);
// get
request().get("/hcast2/get/session")
.expect("Optional.empty");
}
}