1 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 35 public class TestBase extends NbTestCase { 36 37 static { 38 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 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 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 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 |