1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.acegisecurity.acl.basic;
17
18 import junit.framework.TestCase;
19
20
21 /***
22 * Tests {@link SimpleAclEntry}.
23 *
24 * @author Ben Alex
25 * @version $Id: SimpleAclEntryTests.java,v 1.3 2005/11/17 00:56:09 benalex Exp $
26 */
27 public class SimpleAclEntryTests extends TestCase {
28
29
30 public SimpleAclEntryTests() {
31 super();
32 }
33
34 public SimpleAclEntryTests(String arg0) {
35 super(arg0);
36 }
37
38
39
40 public final void setUp() throws Exception {
41 super.setUp();
42 }
43
44 public static void main(String[] args) {
45 junit.textui.TestRunner.run(SimpleAclEntryTests.class);
46 }
47
48 public void testCorrectOperation() {
49 String recipient = "marissa";
50 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
51 "12");
52 SimpleAclEntry acl = new SimpleAclEntry(recipient, objectIdentity,
53 null, 0);
54
55 assertFalse(acl.isPermitted(SimpleAclEntry.ADMINISTRATION));
56 acl.addPermission(SimpleAclEntry.ADMINISTRATION);
57 assertTrue(acl.isPermitted(SimpleAclEntry.ADMINISTRATION));
58 assertFalse(acl.isPermitted(SimpleAclEntry.CREATE));
59 assertFalse(acl.isPermitted(SimpleAclEntry.DELETE));
60 assertFalse(acl.isPermitted(SimpleAclEntry.READ));
61 assertFalse(acl.isPermitted(SimpleAclEntry.WRITE));
62 assertEquals("A----", acl.printPermissionsBlock());
63 acl.deletePermission(SimpleAclEntry.ADMINISTRATION);
64 assertFalse(acl.isPermitted(SimpleAclEntry.ADMINISTRATION));
65 assertEquals("-----", acl.printPermissionsBlock());
66
67 acl.addPermissions(new int[] {SimpleAclEntry.READ, SimpleAclEntry.WRITE});
68 acl.addPermission(SimpleAclEntry.CREATE);
69 assertFalse(acl.isPermitted(SimpleAclEntry.ADMINISTRATION));
70 assertTrue(acl.isPermitted(SimpleAclEntry.CREATE));
71 assertFalse(acl.isPermitted(SimpleAclEntry.DELETE));
72 assertTrue(acl.isPermitted(SimpleAclEntry.READ));
73 assertTrue(acl.isPermitted(SimpleAclEntry.WRITE));
74 assertEquals("-RWC-", acl.printPermissionsBlock());
75
76 acl.deletePermission(SimpleAclEntry.CREATE);
77 acl.deletePermissions(new int[] {SimpleAclEntry.READ, SimpleAclEntry.WRITE});
78 assertEquals("-----", acl.printPermissionsBlock());
79
80 acl.togglePermission(SimpleAclEntry.CREATE);
81 assertTrue(acl.isPermitted(SimpleAclEntry.CREATE));
82 assertFalse(acl.isPermitted(SimpleAclEntry.ADMINISTRATION));
83 acl.togglePermission(SimpleAclEntry.CREATE);
84 assertFalse(acl.isPermitted(SimpleAclEntry.CREATE));
85
86 acl.togglePermission(SimpleAclEntry.DELETE);
87 assertTrue(acl.isPermitted(SimpleAclEntry.DELETE));
88 assertEquals("----D", acl.printPermissionsBlock());
89 }
90
91 public void testDetectsNullOnMainConstructor() {
92 String recipient = "marissa";
93 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
94 "12");
95
96 try {
97 new SimpleAclEntry(recipient, null, null, 2);
98 fail("Should have thrown IllegalArgumentException");
99 } catch (IllegalArgumentException expected) {
100 assertTrue(true);
101 }
102
103 try {
104 new SimpleAclEntry(null, objectIdentity, null, 2);
105 fail("Should have thrown IllegalArgumentException");
106 } catch (IllegalArgumentException expected) {
107 assertTrue(true);
108 }
109 }
110
111 public void testGettersSetters() {
112 SimpleAclEntry acl = new SimpleAclEntry();
113
114 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
115 "693");
116 acl.setAclObjectIdentity(objectIdentity);
117 assertEquals(objectIdentity, acl.getAclObjectIdentity());
118
119 AclObjectIdentity parentObjectIdentity = new NamedEntityObjectIdentity("domain",
120 "13");
121 acl.setAclObjectParentIdentity(parentObjectIdentity);
122 assertEquals(parentObjectIdentity, acl.getAclObjectParentIdentity());
123
124 acl.setMask(2);
125 assertEquals(2, acl.getMask());
126
127 acl.setRecipient("scott");
128 assertEquals("scott", acl.getRecipient());
129 }
130
131 public void testRejectsInvalidMasksInAddMethod() {
132 String recipient = "marissa";
133 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
134 "12");
135 SimpleAclEntry acl = new SimpleAclEntry(recipient, objectIdentity,
136 null, 4);
137
138 try {
139 acl.addPermission(Integer.MAX_VALUE);
140 fail("Should have thrown IllegalArgumentException");
141 } catch (IllegalArgumentException expected) {
142 assertTrue(true);
143 }
144 }
145
146 public void testRejectsInvalidMasksInDeleteMethod() {
147 String recipient = "marissa";
148 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
149 "12");
150 SimpleAclEntry acl = new SimpleAclEntry(recipient, objectIdentity,
151 null, 0);
152 acl.addPermissions(new int[] {SimpleAclEntry.READ, SimpleAclEntry.WRITE, SimpleAclEntry.CREATE});
153
154 try {
155 acl.deletePermission(SimpleAclEntry.READ);
156 fail("Should have thrown IllegalArgumentException");
157 } catch (IllegalArgumentException expected) {
158 assertTrue(true);
159 }
160 }
161
162 public void testRejectsInvalidMasksInTogglePermissionMethod() {
163 String recipient = "marissa";
164 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
165 "12");
166 SimpleAclEntry acl = new SimpleAclEntry(recipient, objectIdentity,
167 null, 0);
168 acl.addPermissions(new int[] {SimpleAclEntry.READ, SimpleAclEntry.WRITE, SimpleAclEntry.CREATE});
169
170 try {
171 acl.togglePermission(SimpleAclEntry.READ);
172 fail("Should have thrown IllegalArgumentException");
173 } catch (IllegalArgumentException expected) {
174 assertTrue(true);
175 }
176 }
177
178 public void testToString() {
179 String recipient = "marissa";
180 AclObjectIdentity objectIdentity = new NamedEntityObjectIdentity("domain",
181 "12");
182 SimpleAclEntry acl = new SimpleAclEntry(recipient, objectIdentity,
183 null, 0);
184 acl.addPermissions(new int[] {SimpleAclEntry.READ, SimpleAclEntry.WRITE, SimpleAclEntry.CREATE});
185 assertTrue(acl.toString().endsWith("marissa=-RWC- ............................111. (14)]"));
186 }
187 }