package li.strolch.privilege.test;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class PersistSessionsTest extends AbstractPrivilegeTest {
@BeforeClass
public static void init() throws Exception {
removeConfigs(PersistSessionsTest.class.getSimpleName());
prepareConfigs(PersistSessionsTest.class.getSimpleName(), "PrivilegeConfig.xml", "PrivilegeUsers.xml",
"PrivilegeRoles.xml");
}
@AfterClass
public static void destroy() throws Exception {
removeConfigs(PersistSessionsTest.class.getSimpleName());
}
@Before
public void setup() throws Exception {
initialize(PersistSessionsTest.class.getSimpleName(), "PrivilegeConfig.xml");
}
@Test
public void shouldPersistAndReloadSessions() {
// assert no sessions file
File sessionsFile = new File("target/PersistSessionsTest/sessions.dat");
assertFalse("Sessions File should no yet exist", sessionsFile.exists());
// login and assert sessions file was written
login("admin", "admin".getBytes());
this.privilegeHandler.isCertificateValid(ctx.getCertificate());
assertTrue("Sessions File should have been created!", sessionsFile.isFile());
// re-initialize and assert still logged in
initialize(PersistSessionsTest.class.getSimpleName(), "PrivilegeConfig.xml");
this.privilegeHandler.isCertificateValid(ctx.getCertificate());
}
}