1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.providers.cas.cache;
17
18 import junit.framework.TestCase;
19
20 import org.acegisecurity.GrantedAuthority;
21 import org.acegisecurity.GrantedAuthorityImpl;
22 import org.acegisecurity.MockApplicationContext;
23 import org.acegisecurity.providers.cas.CasAuthenticationToken;
24 import org.acegisecurity.userdetails.User;
25
26 import net.sf.ehcache.Cache;
27
28 import org.springframework.context.ApplicationContext;
29
30 import java.util.List;
31 import java.util.Vector;
32
33
34 /***
35 * Tests {@link EhCacheBasedTicketCache}.
36 *
37 * @author Ben Alex
38 * @version $Id: EhCacheBasedTicketCacheTests.java,v 1.9 2005/11/29 13:10:14 benalex Exp $
39 */
40 public class EhCacheBasedTicketCacheTests extends TestCase {
41
42
43 public EhCacheBasedTicketCacheTests() {
44 super();
45 }
46
47 public EhCacheBasedTicketCacheTests(String arg0) {
48 super(arg0);
49 }
50
51
52
53 public final void setUp() throws Exception {
54 super.setUp();
55 }
56
57 public static void main(String[] args) {
58 junit.textui.TestRunner.run(EhCacheBasedTicketCacheTests.class);
59 }
60
61 public void testCacheOperation() throws Exception {
62 EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
63 cache.setCache(getCache());
64 cache.afterPropertiesSet();
65
66
67 cache.putTicketInCache(getToken());
68 assertEquals(getToken(),
69 cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ"));
70
71
72 cache.removeTicketFromCache(getToken());
73 assertNull(cache.getByTicketId("ST-0-ER94xMJmn6pha35CQRoZ"));
74
75
76 assertNull(cache.getByTicketId(null));
77 assertNull(cache.getByTicketId("UNKNOWN_SERVICE_TICKET"));
78 }
79
80 public void testStartupDetectsMissingCache() throws Exception {
81 EhCacheBasedTicketCache cache = new EhCacheBasedTicketCache();
82
83 try {
84 cache.afterPropertiesSet();
85 fail("Should have thrown IllegalArgumentException");
86 } catch (IllegalArgumentException expected) {
87 assertTrue(true);
88 }
89
90 Cache myCache = getCache();
91 cache.setCache(myCache);
92 assertEquals(myCache, cache.getCache());
93 }
94
95 private Cache getCache() {
96 ApplicationContext ctx = MockApplicationContext.getContext();
97
98 return (Cache) ctx.getBean("eHCacheBackend");
99 }
100
101 private CasAuthenticationToken getToken() {
102 List proxyList = new Vector();
103 proxyList.add("https://localhost/newPortal/j_acegi_cas_security_check");
104
105 User user = new User("marissa", "password", true, true, true, true,
106 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
107 "ROLE_TWO")});
108
109 return new CasAuthenticationToken("key", "marissa",
110 "ST-0-ER94xMJmn6pha35CQRoZ",
111 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
112 "ROLE_TWO")}, user, proxyList,
113 "PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
114 }
115 }