1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.providers.dao.salt;
17
18 import junit.framework.TestCase;
19
20 import org.acegisecurity.AuthenticationServiceException;
21 import org.acegisecurity.GrantedAuthority;
22 import org.acegisecurity.GrantedAuthorityImpl;
23 import org.acegisecurity.userdetails.User;
24 import org.acegisecurity.userdetails.UserDetails;
25
26
27 /***
28 * Tests {@link ReflectionSaltSource}.
29 *
30 * @author Ben Alex
31 * @version $Id: ReflectionSaltSourceTests.java,v 1.8 2005/11/29 13:10:11 benalex Exp $
32 */
33 public class ReflectionSaltSourceTests extends TestCase {
34
35
36 public ReflectionSaltSourceTests() {
37 super();
38 }
39
40 public ReflectionSaltSourceTests(String arg0) {
41 super(arg0);
42 }
43
44
45
46 public final void setUp() throws Exception {
47 super.setUp();
48 }
49
50 public static void main(String[] args) {
51 junit.textui.TestRunner.run(ReflectionSaltSourceTests.class);
52 }
53
54 public void testDetectsMissingUserPropertyToUse() throws Exception {
55 ReflectionSaltSource saltSource = new ReflectionSaltSource();
56
57 try {
58 saltSource.afterPropertiesSet();
59 fail("Should have thrown IllegalArgumentException");
60 } catch (IllegalArgumentException expected) {
61 assertEquals("A userPropertyToUse must be set",
62 expected.getMessage());
63 }
64 }
65
66 public void testExceptionWhenInvalidPropertyRequested() {
67 ReflectionSaltSource saltSource = new ReflectionSaltSource();
68 saltSource.setUserPropertyToUse("getDoesNotExist");
69
70 UserDetails user = new User("scott", "wombat", true, true, true, true,
71 new GrantedAuthority[] {new GrantedAuthorityImpl("HOLDER")});
72
73 try {
74 saltSource.getSalt(user);
75 fail("Should have thrown AuthenticationServiceException");
76 } catch (AuthenticationServiceException expected) {
77 assertTrue(true);
78 }
79 }
80
81 public void testGettersSetters() {
82 ReflectionSaltSource saltSource = new ReflectionSaltSource();
83 saltSource.setUserPropertyToUse("getUsername");
84 assertEquals("getUsername", saltSource.getUserPropertyToUse());
85 }
86
87 public void testNormalOperation() throws Exception {
88 ReflectionSaltSource saltSource = new ReflectionSaltSource();
89 saltSource.setUserPropertyToUse("getUsername");
90 saltSource.afterPropertiesSet();
91
92 UserDetails user = new User("scott", "wombat", true, true, true, true,
93 new GrantedAuthority[] {new GrantedAuthorityImpl("HOLDER")});
94 assertEquals("scott", saltSource.getSalt(user));
95 }
96 }