KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > schlichtherle > key > KeyManagerTest


1 /*
2  * KeyManagerTest.java
3  * JUnit based test
4  *
5  * Created on 17. Juni 2006, 18:07
6  */

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

22
23 package de.schlichtherle.key;
24
25 import java.util.logging.Logger JavaDoc;
26 import junit.framework.*;
27
28 import de.schlichtherle.key.passwd.swing.PromptingKeyManager;
29
30 /**
31  * @author Christian Schlichtherle
32  */

33 public class KeyManagerTest extends TestCase {
34
35     private static final Logger JavaDoc logger = Logger.getLogger(
36             KeyManagerTest.class.getName());
37
38     private KeyManager instance;
39
40     public KeyManagerTest(String JavaDoc testName) {
41         super(testName);
42     }
43
44     protected void setUp() throws Exception JavaDoc {
45         instance = KeyManager.getInstance();
46     }
47
48     protected void tearDown() throws Exception JavaDoc {
49     }
50
51     /**
52      * Test of get/setInstance method, of class de.schlichtherle.key.KeyManager.
53      */

54     public void testGetSetInstance() {
55         logger.fine("getSetInstance");
56         
57         final KeyManager inst1 = KeyManager.getInstance();
58         assertNotNull(inst1);
59
60         KeyManager.setInstance(null);
61         final KeyManager inst2 = KeyManager.getInstance();
62         assertNotNull(inst2);
63         assertNotSame(inst1, inst2);
64
65         final KeyManager inst3 = new PromptingKeyManager();
66
67         KeyManager.setInstance(inst3);
68         final KeyManager inst4 = KeyManager.getInstance();
69         assertNotNull(inst4);
70
71         assertSame(inst3, inst4);
72     }
73
74     /**
75      * Test of get/setKeyProvider method, of class de.schlichtherle.key.KeyManager.
76      */

77     public void testGetSetKeyProvider() {
78         logger.fine("getSetKeyProvider");
79
80         final String JavaDoc idA = "getSetKeyProvider A";
81         
82         final KeyProvider resA1 = instance.getKeyProvider(idA);
83         assertNotNull(resA1);
84         
85         final KeyProvider resA2 = instance.getKeyProvider(idA);
86         assertSame(resA1, resA2);
87         
88         final KeyProvider resA3 = instance.getKeyProvider(
89                 idA, SucceedingKeyProvider.class);
90         assertSame(resA1, resA3);
91         
92         final KeyProvider resA4 = new SucceedingKeyProvider();
93         try {
94             instance.setKeyProvider(null, resA4);
95             fail("A NullPointerException is expected from the previous call!");
96         } catch (NullPointerException JavaDoc exc) {
97         }
98         try {
99             instance.setKeyProvider(idA, null);
100             fail("A NullPointerException is expected from the previous call!");
101         } catch (NullPointerException JavaDoc exc) {
102         }
103         try {
104             instance.setKeyProvider(null, null);
105             fail("A NullPointerException is expected from the previous call!");
106         } catch (NullPointerException JavaDoc exc) {
107         }
108         instance.setKeyProvider(idA, resA4);
109
110         final KeyProvider resA5 = instance.getKeyProvider(idA);
111         assertSame(resA4, resA5);
112
113         final String JavaDoc idB = "getSetKeyProvider B";
114         
115         final KeyProvider resB1 = instance.getKeyProvider(
116                 idB, SucceedingKeyProvider.class);
117         assertNotNull(resB1);
118         assertNotSame(resA5, resB1);
119         assertTrue(resB1 instanceof SucceedingKeyProvider);
120
121         final String JavaDoc idC = "getSetKeyProvider C";
122         
123         try {
124             final KeyProvider resC1 = instance.getKeyProvider(
125                     idC, FailingKeyProvider.class);
126             fail("An IllegalArgumentException is expected from the previous call!");
127         } catch (IllegalArgumentException JavaDoc exc) {
128         }
129     }
130     
131     static class SucceedingKeyProvider extends PromptingKeyProvider {
132     }
133
134     /** The key manager cannot instantiate this private class. */
135     private static class FailingKeyProvider extends PromptingKeyProvider {
136     }
137
138     /**
139      * Test of resetKeyProvider method, of class de.schlichtherle.key.KeyManager.
140      */

141     public void testResetKeyProvider() {
142         String JavaDoc resourceID = "resetKeyProvider";
143         logger.fine(resourceID);
144
145         final SimpleSharedKeyProvider provider
146                 = (SimpleSharedKeyProvider) instance.getKeyProvider(
147                     resourceID, SimpleSharedKeyProvider.class);
148         provider.reset = false;
149         boolean result = KeyManager.resetKeyProvider(resourceID);
150         assertTrue(result);
151         assertTrue(provider.reset);
152         
153         assertSame(provider, instance.getKeyProvider(resourceID));
154     }
155
156     static class SimpleSharedKeyProvider extends AbstractKeyProvider {
157         public boolean reset;
158
159         public void invalidOpenKeyImpl() {
160         }
161
162         public void reset() {
163             reset = true;
164         }
165     }
166
167     /**
168      * Test of resetAndRemoveKeyProvider method, of class de.schlichtherle.key.KeyManager.
169      */

170     public void testResetAndRemoveKeyProvider() {
171         logger.fine("resetAndRemoveKeyProvider");
172
173         final String JavaDoc resA = "resetAndRemoveKeyProvider A";
174         final String JavaDoc resB = "resetAndRemoveKeyProvider B";
175
176         final SimpleSharedKeyProvider provA1
177                 = (SimpleSharedKeyProvider) instance.getKeyProvider(
178                     resA, SimpleSharedKeyProvider.class);
179         provA1.reset = false;
180         boolean okA = KeyManager.resetAndRemoveKeyProvider(resA);
181         assertTrue(okA);
182         assertTrue(provA1.reset);
183         
184         final KeyProvider provA2 = instance.getKeyProvider(resA);
185         assertNotNull(provA2);
186         assertNotSame(provA1, provA2);
187
188         final SimpleKeyProvider provB1
189                 = (SimpleKeyProvider) instance.getKeyProvider(
190                     resB, SimpleKeyProvider.class);
191         boolean okB = KeyManager.resetAndRemoveKeyProvider(resB);
192         assertTrue(okB);
193         
194         final KeyProvider provB2 = instance.getKeyProvider(resB);
195         assertNotNull(provB2);
196         assertNotSame(provB1, provB2);
197     }
198
199     static class SimpleKeyProvider implements KeyProvider {
200         public Object JavaDoc getCreateKey() {
201             return this;
202         }
203
204         public Object JavaDoc getOpenKey() {
205             return this;
206         }
207         
208         public void invalidOpenKey() {
209         }
210     }
211
212     /**
213      * Test of resetKeyProviders method, of class de.schlichtherle.key.KeyManager.
214      */

215     public void testResetKeyProviders() {
216         logger.fine("resetKeyProviders");
217
218         final String JavaDoc resA = "resetKeyProviders A";
219         final String JavaDoc resB = "resetKeyProviders B";
220
221         final SimpleSharedKeyProvider provA
222                 = (SimpleSharedKeyProvider) instance.getKeyProvider(
223                     resA, SimpleSharedKeyProvider.class);
224         provA.reset = false;
225
226         final SimpleSharedKeyProvider provB
227                 = (SimpleSharedKeyProvider) instance.getKeyProvider(
228                     resB, SimpleSharedKeyProvider.class);
229         provB.reset = false;
230
231         KeyManager.resetKeyProviders();
232
233         assertTrue(provA.reset);
234         assertTrue(provB.reset);
235     }
236
237     /**
238      * Test of resetAndClearKeyProviders method, of class de.schlichtherle.key.KeyManager.
239      */

240     public void testResetAndRemoveKeyProviders() {
241         logger.fine("resetAndRemoveKeyProviders");
242
243         final String JavaDoc resA = "resetAndRemoveKeyProviders A";
244         final String JavaDoc resB = "resetAndRemoveKeyProviders B";
245
246         final SimpleSharedKeyProvider provA1
247                 = (SimpleSharedKeyProvider) instance.getKeyProvider(
248                     resA, SimpleSharedKeyProvider.class);
249         provA1.reset = false;
250
251         final SimpleKeyProvider provB1
252                 = (SimpleKeyProvider) instance.getKeyProvider(
253                     resB, SimpleKeyProvider.class);
254
255         KeyManager.resetAndRemoveKeyProviders();
256         assertTrue(provA1.reset);
257         
258         final KeyProvider provA2 = instance.getKeyProvider(resA);
259         assertNotNull(provA2);
260         assertNotSame(provA1, provA2);
261         
262         final KeyProvider provB2 = instance.getKeyProvider(resB);
263         assertNotNull(provB2);
264         assertNotSame(provB1, provB2);
265     }
266
267     /**
268      * Test of moveKeyProvider method, of class de.schlichtherle.key.KeyManager.
269      */

270     public void testMoveKeyProvider() {
271         logger.fine("moveKeyProvider");
272         
273         String JavaDoc oldResourceID = "moveKeyProvider A";
274         String JavaDoc newResourceID = "moveKeyProvider B";
275
276         try {
277             KeyManager.moveKeyProvider(null, null);
278             fail("A NullPointerException is expected from the previous call!");
279         } catch (NullPointerException JavaDoc expected) {
280         }
281         try {
282             KeyManager.moveKeyProvider(oldResourceID, null);
283             fail("A NullPointerException is expected from the previous call!");
284         } catch (NullPointerException JavaDoc expected) {
285         }
286         try {
287             KeyManager.moveKeyProvider(null, newResourceID);
288             fail("A NullPointerException is expected from the previous call!");
289         } catch (NullPointerException JavaDoc expected) {
290         }
291         boolean result = KeyManager.moveKeyProvider(oldResourceID, newResourceID);
292         assertEquals(false, result); // no provider mapped yet
293

294         final PromptingKeyProvider provA1
295                 = (PromptingKeyProvider) instance.getKeyProvider(oldResourceID);
296         assertNotNull(provA1);
297         assertSame(oldResourceID, provA1.getResourceID());
298
299         result = KeyManager.moveKeyProvider(oldResourceID, newResourceID);
300         assertEquals(true, result);
301
302         final KeyProvider provA2 = instance.getKeyProvider(oldResourceID);
303         assertNotNull(provA2);
304
305         final PromptingKeyProvider provB1
306                 = (PromptingKeyProvider) instance.getKeyProvider(newResourceID);
307         assertNotNull(provB1);
308         assertSame(provA1, provB1);
309         assertSame(newResourceID, provB1.getResourceID());
310     }
311 }
312
Popular Tags