1 19 20 package org.netbeans.modules.apisupport.project.layers; 21 22 import java.io.IOException ; 23 import junit.framework.Assert; 24 import org.netbeans.api.xml.services.UserCatalog; 25 import org.netbeans.junit.NbTestCase; 26 import org.openide.util.Lookup; 27 import org.openide.util.lookup.Lookups; 28 import org.openide.util.lookup.ProxyLookup; 29 import org.xml.sax.EntityResolver ; 30 import org.xml.sax.InputSource ; 31 import org.xml.sax.SAXException ; 32 33 39 public abstract class LayerTestBase extends NbTestCase { 40 41 public static final class Lkp extends ProxyLookup { 42 static { 44 System.setProperty("org.openide.util.Lookup", Lkp.class.getName()); 46 Assert.assertEquals(Lkp.class, Lookup.getDefault().getClass()); 47 } 48 private static Lkp DEFAULT; 49 public Lkp() { 50 Assert.assertNull(DEFAULT); 51 DEFAULT = this; 52 setLookup(new Object [0]); 53 } 54 public static void setLookup(Object [] instances) { 55 ClassLoader l = Lkp.class.getClassLoader(); 56 DEFAULT.setLookups(new Lookup[] { 57 Lookups.fixed(instances), 58 Lookups.metaInfServices(l), 59 Lookups.singleton(l), 60 }); 61 } 62 } 63 64 protected LayerTestBase(String name) { 65 super(name); 66 } 67 68 protected void setUp() throws Exception { 69 super.setUp(); 70 clearWorkDir(); 71 Lkp.setLookup(new Object [] { 72 new TestCatalog(), 73 }); 74 } 75 76 79 private static final class TestCatalog extends UserCatalog implements EntityResolver { 80 81 public TestCatalog() {} 82 83 public EntityResolver getEntityResolver() { 84 return this; 85 } 86 87 public InputSource resolveEntity(String publicId, String systemId) throws SAXException , IOException { 88 if ("-//NetBeans//DTD Filesystem 1.1//EN".equals(publicId)) { 89 return new InputSource (LayerTestBase.class.getClassLoader().getResource("org/openide/filesystems/filesystem1_1.dtd").toExternalForm()); 90 } else if ("-//NetBeans//DTD Filesystem 1.0//EN".equals(publicId)) { 91 return new InputSource (LayerTestBase.class.getClassLoader().getResource("org/openide/filesystems/filesystem.dtd").toExternalForm()); 92 } else { 93 return null; 94 } 95 } 96 97 } 98 99 } 100 | Popular Tags |