KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > apisupport > project > layers > LayerTestBase


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.apisupport.project.layers;
21
22 import java.io.IOException JavaDoc;
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 JavaDoc;
30 import org.xml.sax.InputSource JavaDoc;
31 import org.xml.sax.SAXException JavaDoc;
32
33 /**
34  * Superclass for tests that work with XML layers.
35  * Does some setup, since TAX requires some special infrastructure.
36  * @author Jesse Glick
37  * @see "#62363"
38  */

39 public abstract class LayerTestBase extends NbTestCase {
40     
41     public static final class Lkp extends ProxyLookup {
42         // Copied from org.netbeans.api.project.TestUtil:
43
static {
44             // XXX replace with MockServices
45
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 JavaDoc[0]);
53         }
54         public static void setLookup(Object JavaDoc[] instances) {
55             ClassLoader JavaDoc 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 JavaDoc name) {
65         super(name);
66     }
67     
68     protected void setUp() throws Exception JavaDoc {
69         super.setUp();
70         clearWorkDir();
71         Lkp.setLookup(new Object JavaDoc[] {
72             new TestCatalog(),
73         });
74     }
75     
76     /**
77      * In the actual IDE, the default NetBeans Catalog will already be "mounted", so just for testing:
78      */

79     private static final class TestCatalog extends UserCatalog implements EntityResolver JavaDoc {
80         
81         public TestCatalog() {}
82         
83         public EntityResolver JavaDoc getEntityResolver() {
84             return this;
85         }
86         
87         public InputSource JavaDoc resolveEntity(String JavaDoc publicId, String JavaDoc systemId) throws SAXException JavaDoc, IOException JavaDoc {
88             if ("-//NetBeans//DTD Filesystem 1.1//EN".equals(publicId)) {
89                 return new InputSource JavaDoc(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 JavaDoc(LayerTestBase.class.getClassLoader().getResource("org/openide/filesystems/filesystem.dtd").toExternalForm());
92             } else {
93                 return null;
94             }
95         }
96         
97     }
98     
99 }
100
Popular Tags