KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > tomcat5 > util > TestBase


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.tomcat5.util;
21
22 import org.netbeans.junit.NbTestCase;
23 import org.openide.filesystems.Repository;
24 import org.openide.loaders.DataFolder;
25 import org.openide.loaders.FolderLookup;
26 import org.openide.util.Lookup;
27 import org.openide.util.lookup.Lookups;
28 import org.openide.util.lookup.ProxyLookup;
29
30 /**
31  * Common ancestor for all test classes.
32  *
33  * @author sherold
34  */

35 public class TestBase extends NbTestCase {
36
37     static {
38         // set the lookup which will be returned by Lookup.getDefault()
39
System.setProperty("org.openide.util.Lookup", Lkp.class.getName());
40         assertEquals("Unable to set the default lookup!", Lkp.class, Lookup.getDefault().getClass());
41         
42         ((Lkp)Lookup.getDefault()).setRepository(new RepositoryImpl());
43         assertEquals("The default Repository is not our repository!", RepositoryImpl.class, Repository.getDefault().getClass());
44     }
45     
46     public TestBase(String JavaDoc name) {
47         super(name);
48     }
49     
50     public static final class Lkp extends ProxyLookup {
51         public Lkp() {
52             setProxyLookups(new Lookup[0]);
53         }
54         
55         private void setProxyLookups(Lookup[] lookups) {
56             Lookup[] allLookups = new Lookup[lookups.length + 2];
57             ClassLoader JavaDoc l = TestBase.class.getClassLoader();
58             allLookups[allLookups.length - 1] = Lookups.metaInfServices(l);
59             allLookups[allLookups.length - 2] = Lookups.singleton(l);
60             System.arraycopy(lookups, 0, allLookups, 0, lookups.length);
61             setLookups(allLookups);
62         }
63         
64         private void setRepository(Repository repository) {
65             // must set out repository first
66
setProxyLookups(new Lookup[] {
67                 Lookups.singleton(repository),
68             });
69             
70             DataFolder services = DataFolder.findFolder(repository.getDefaultFileSystem().getRoot().getFileObject("Services"));
71             FolderLookup lookup = new FolderLookup(services);
72             setProxyLookups(new Lookup[] {
73                 Lookups.singleton(repository),
74                 new FolderLookup(services).getLookup()
75             });
76         }
77     }
78 }
79
Popular Tags