1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.session.mgt;
20
21 import org.apache.shiro.session.ExpiredSessionException;
22 import org.apache.shiro.util.ThreadContext;
23 import org.junit.After;
24 import org.junit.Before;
25 import org.junit.Test;
26
27 import java.io.Serializable;
28
29 import static org.junit.Assert.assertEquals;
30 import static org.junit.Assert.fail;
31
32
33
34
35 public class DelegatingSessionTest {
36
37 DelegatingSession session = null;
38 DefaultSessionManager sm = null;
39
40 @Before
41 public void setup() {
42 ThreadContext.remove();
43 sm = new DefaultSessionManager();
44 this.session = new DelegatingSession(sm, new DefaultSessionKey(sm.start(null).getId()));
45 }
46
47 @After
48 public void tearDown() {
49 sm.destroy();
50 ThreadContext.remove();
51 }
52
53 public void sleep(long millis) {
54 try {
55 Thread.sleep(millis);
56 } catch (InterruptedException e) {
57 throw new IllegalStateException(e);
58 }
59 }
60
61 @Test
62 public void testTimeout() {
63 Serializable origId = session.getId();
64 assertEquals(session.getTimeout(), AbstractSessionManager.DEFAULT_GLOBAL_SESSION_TIMEOUT);
65 session.touch();
66 session.setTimeout(100);
67 assertEquals(100, session.getTimeout());
68 sleep(150);
69 try {
70 session.getTimeout();
71 fail("Session should have expired.");
72 } catch (ExpiredSessionException expected) {
73 }
74 }
75
76 }