KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > javax > security > jacc > EJBMethodPermissionTest


1 /**
2  *
3  * Copyright 2003-2004 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 //
19
// This source code implements specifications defined by the Java
20
// Community Process. In order to remain compliant with the specification
21
// DO NOT add / change / or delete method signatures!
22
//
23

24 package javax.security.jacc;
25
26 import junit.framework.TestCase;
27
28 import java.lang.reflect.Method;
29
30 /**
31  *
32  * @version $Rev: 46019 $ $Date: 2004-09-14 02:56:06 -0700 (Tue, 14 Sep 2004) $
33  */

34 public class EJBMethodPermissionTest extends TestCase {
35     protected Method method;
36
37     public void setUp() {
38         try {
39             method = TestClass.class.getDeclaredMethod("cat", new Class[] { Integer.class, Float.class, Long.class, Double.class });
40         } catch (NoSuchMethodException e) {
41             e.printStackTrace(); //To change body of catch statement use Options | File Templates.
42
} catch (SecurityException e) {
43             e.printStackTrace(); //To change body of catch statement use Options | File Templates.
44
}
45     }
46
47     /*
48      * Testing EJBMethodPermission(java.lang.String, java.lang.String)
49      */

50     public void testConstructorStringString() {
51
52         // methodSpec ::= null
53
EJBMethodPermission permission = new EJBMethodPermission("foo", null);
54
55         // methodSpec ::= methodNameSpec
56
permission = new EJBMethodPermission("foo", "");
57         permission = new EJBMethodPermission("foo", "cat");
58
59         // methodSpec ::= methodNameSpec comma methodInterface
60
permission = new EJBMethodPermission("foo", ",ServiceEndpoint");
61         permission = new EJBMethodPermission("foo", "cat,ServiceEndpoint");
62
63         // methodSpec ::= methodNameSpec comma methodInterfaceSpec comma methodParamsSpec
64
permission = new EJBMethodPermission("foo", ",,");
65         permission = new EJBMethodPermission("foo", "cat,,");
66         permission = new EJBMethodPermission("foo", ",Home,");
67         permission = new EJBMethodPermission("foo", "cat,Home,");
68         permission = new EJBMethodPermission("foo", ",,a,b,c,d");
69         permission = new EJBMethodPermission("foo", "cat,,a,b,c,d");
70         permission = new EJBMethodPermission("foo", ",Home,a,b,c,d");
71         permission = new EJBMethodPermission("foo", "cat,Home,a,b,c,d");
72
73
74         // methodInterface ::= "Home" | "LocalHome" | "Remote" | "Local" | "ServiceEndpoint"
75
permission = new EJBMethodPermission("foo", "cat,Home,a,b,c,d");
76         permission = new EJBMethodPermission("foo", "cat,LocalHome,a,b,c,d");
77         permission = new EJBMethodPermission("foo", "cat,Remote,a,b,c,d");
78         permission = new EJBMethodPermission("foo", "cat,Local,a,b,c,d");
79         permission = new EJBMethodPermission("foo", "cat,ServiceEndpoint,a,b,c,d");
80
81         assertEquals(permission.getName(), "foo");
82         assertEquals(permission.getActions(), "cat,ServiceEndpoint,a,b,c,d");
83
84
85         // bad methodInterface
86
try {
87             permission = new EJBMethodPermission("foo", "cat,Interface,a,b,c,d");
88             fail("Bad method interface");
89         } catch(IllegalArgumentException iae) {
90         }
91
92         // no production produces "emptyString,emptyString"
93
try {
94             permission = new EJBMethodPermission("foo", ",");
95             fail("Empty method interface");
96         } catch(IllegalArgumentException iae) {
97         }
98
99         // no production produces "methodName ,emptyString"
100
try {
101             permission = new EJBMethodPermission("foo", "cat,");
102             fail("Empty method interface");
103         } catch(IllegalArgumentException iae) {
104         }
105
106         // no production produces an empty method parameter
107
try {
108             permission = new EJBMethodPermission("foo", ",,,");
109             fail("Empty method parameter");
110         } catch(IllegalArgumentException iae) {
111         }
112
113         // no production produces an empty method parameter
114
try {
115             permission = new EJBMethodPermission("foo", ",,,,,,");
116             fail("Empty method parameter");
117         } catch(IllegalArgumentException iae) {
118         }
119     }
120
121     public void testImpliesStringString() {
122         EJBMethodPermission permissionFooEEE = new EJBMethodPermission("foo", "");
123         EJBMethodPermission permissionFooMIP = new EJBMethodPermission("foo", "cat,LocalHome,a,b,c,d");
124         EJBMethodPermission permissionBarEEE = new EJBMethodPermission("bar", "");
125         EJBMethodPermission permissionFooEIP = new EJBMethodPermission("foo", ",LocalHome,a,b,c,d");
126         EJBMethodPermission permissionFooEIE = new EJBMethodPermission("foo", ",LocalHome,");
127         EJBMethodPermission permissionFooEI = new EJBMethodPermission("foo", ",LocalHome");
128
129         assertTrue(permissionFooEEE.implies(permissionFooEEE));
130         assertTrue(permissionFooEEE.implies(permissionFooMIP));
131         assertTrue(permissionFooEEE.implies(permissionFooEIP));
132         assertTrue(permissionFooEEE.implies(permissionFooEIE));
133         assertTrue(permissionFooEEE.implies(permissionFooEI));
134         assertFalse(permissionFooMIP.implies(permissionFooEEE));
135
136         assertTrue(permissionFooEEE.equals(permissionFooEEE));
137         assertFalse(permissionFooEEE.equals(permissionFooMIP));
138         assertFalse(permissionFooMIP.equals(permissionFooEEE));
139
140         assertFalse(permissionFooEEE.implies(permissionBarEEE));
141         assertFalse(permissionBarEEE.implies(permissionFooEEE));
142
143         assertFalse(permissionFooEEE.equals(permissionBarEEE));
144         assertFalse(permissionBarEEE.equals(permissionFooEEE));
145
146         assertTrue(permissionFooEIP.implies(permissionFooMIP));
147         assertFalse(permissionFooEIE.implies(permissionFooMIP));
148         assertTrue(permissionFooEI.implies(permissionFooMIP));
149         assertTrue(permissionFooEI.implies(permissionFooEIP));
150         assertTrue(permissionFooEI.implies(permissionFooEIE));
151
152         assertFalse(permissionFooEEE.hashCode() == permissionBarEEE.hashCode());
153     }
154
155     /*
156      * Testing EJBMethodPermission(String, String, String, String[])
157      */

158     public void testConstructorStringStringStringStringArray() {
159
160         // methodSpec ::= null
161
EJBMethodPermission permission = new EJBMethodPermission("foo", null, null, null);
162
163         // methodSpec ::= methodNameSpec
164
permission = new EJBMethodPermission("foo", "", "", null);
165         permission = new EJBMethodPermission("foo", "cat", "", null);
166
167         // methodSpec ::= methodNameSpec comma methodInterface
168
permission = new EJBMethodPermission("foo", "", "ServiceEndpoint", null);
169         permission = new EJBMethodPermission("foo", "cat", "ServiceEndpoint", null);
170
171         // methodSpec ::= methodNameSpec comma methodInterfaceSpec comma methodParamsSpec
172
permission = new EJBMethodPermission("foo", "", "", new String[]{});
173         permission = new EJBMethodPermission("foo", "cat", "", new String[]{});
174         permission = new EJBMethodPermission("foo", "", "Home", new String[]{});
175         permission = new EJBMethodPermission("foo", "cat", "Home", new String[] {});
176         permission = new EJBMethodPermission("foo", "", "", new String[] { "a", "b", "c", "d" });
177         permission = new EJBMethodPermission("foo", "cat", "", new String[] { "a", "b", "c", "d" });
178         permission = new EJBMethodPermission("foo", "", "Home", new String[] { "a", "b", "c", "d" });
179         permission = new EJBMethodPermission("foo", "cat", "Home", new String[] { "a", "b", "c", "d" });
180
181
182         // methodInterface ::= "Home" | "LocalHome" | "Remote" | "Local" | "ServiceEndpoint"
183
permission = new EJBMethodPermission("foo", "cat", "Home", new String[] { "a", "b", "c", "d" });
184         permission = new EJBMethodPermission("foo", "cat", "LocalHome", new String[] { "a", "b", "c", "d" });
185         permission = new EJBMethodPermission("foo", "cat", "Remote", new String[] { "a", "b", "c", "d" });
186         permission = new EJBMethodPermission("foo", "cat", "Local", new String[] { "a", "b", "c", "d" });
187         permission = new EJBMethodPermission("foo", "cat", "ServiceEndpoint", new String[] { "a", "b", "c", "d" });
188
189         assertEquals(permission.getName(), "foo");
190         assertEquals(permission.getActions(), "cat,ServiceEndpoint,a,b,c,d");
191
192
193         // bad methodInterface
194
try {
195             permission = new EJBMethodPermission("foo", "cat", "Interface", new String[] { "a", "b", "c", "d" });
196             fail("Bad method interface");
197         } catch(IllegalArgumentException iae) {
198         }
199     }
200
201     public void testImpliesStringStringStringStringArray() {
202         EJBMethodPermission permissionFooEEE = new EJBMethodPermission("foo", "", "", null);
203         EJBMethodPermission permissionFooMIP = new EJBMethodPermission("foo", "cat", "LocalHome", new String[] { "a", "b", "c", "d" });
204         EJBMethodPermission permissionBarEEE = new EJBMethodPermission("bar", "", "", new String[] {});
205         EJBMethodPermission permissionFooEIP = new EJBMethodPermission("foo", "", "LocalHome", new String[] { "a", "b", "c", "d" });
206         EJBMethodPermission permissionFooEIE = new EJBMethodPermission("foo", "", "LocalHome", new String[] {});
207         EJBMethodPermission permissionFooEI = new EJBMethodPermission("foo", "", "LocalHome", null);
208
209         assertTrue(permissionFooEEE.implies(permissionFooEEE));
210         assertTrue(permissionFooEEE.implies(permissionFooMIP));
211         assertTrue(permissionFooEEE.implies(permissionFooEIP));
212         assertTrue(permissionFooEEE.implies(permissionFooEIE));
213         assertTrue(permissionFooEEE.implies(permissionFooEI));
214         assertFalse(permissionFooMIP.implies(permissionFooEEE));
215
216         assertTrue(permissionFooEEE.equals(permissionFooEEE));
217         assertFalse(permissionFooEEE.equals(permissionFooMIP));
218         assertFalse(permissionFooMIP.equals(permissionFooEEE));
219
220         assertFalse(permissionFooEEE.implies(permissionBarEEE));
221         assertFalse(permissionBarEEE.implies(permissionFooEEE));
222
223         assertFalse(permissionFooEEE.equals(permissionBarEEE));
224         assertFalse(permissionBarEEE.equals(permissionFooEEE));
225
226         assertTrue(permissionFooEIP.implies(permissionFooMIP));
227         assertFalse(permissionFooEIE.implies(permissionFooMIP));
228         assertTrue(permissionFooEI.implies(permissionFooMIP));
229         assertTrue(permissionFooEI.implies(permissionFooEIP));
230         assertTrue(permissionFooEI.implies(permissionFooEIE));
231
232         assertFalse(permissionFooEEE.hashCode() == permissionBarEEE.hashCode());
233     }
234
235     /*
236      * Testing EJBMethodPermission(String, String, Method)
237      */

238     public void testConstructorStringStringMethod() {
239
240         EJBMethodPermission permission = new EJBMethodPermission("foo", "ServiceEndpoint", method);
241
242         permission = new EJBMethodPermission("foo", null, method);
243         permission = new EJBMethodPermission("foo", "", method);
244
245         permission = new EJBMethodPermission("foo", "Home", method);
246         permission = new EJBMethodPermission("foo", "LocalHome", method);
247         permission = new EJBMethodPermission("foo", "Remote", method);
248         permission = new EJBMethodPermission("foo", "Local", method);
249         permission = new EJBMethodPermission("foo", "ServiceEndpoint", method);
250
251         assertEquals(permission.getName(), "foo");
252         assertEquals(permission.getActions(), "cat,ServiceEndpoint,java.lang.Integer,java.lang.Float,java.lang.Long,java.lang.Double");
253
254         // Parameter method must not be null
255
try {
256             permission = new EJBMethodPermission("foo", "ServiceEndpoint", null);
257             fail("Parameter method must not be null");
258         } catch(IllegalArgumentException iae) {
259         }
260     }
261
262     public void testImpliesStringStringMethod() {
263     }
264
265     class TestClass {
266         public Object cat(Integer a, Float b, Long c, Double d) {
267             return null;
268         }
269     }
270 }
271
272
Popular Tags