KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openide > modules > DependencyTest


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.openide.modules;
21
22 import java.util.Iterator JavaDoc;
23 import java.util.Set JavaDoc;
24 import junit.textui.TestRunner;
25 import org.netbeans.junit.NbTestCase;
26 import org.netbeans.junit.NbTestSuite;
27 import org.openide.modules.Dependency;
28
29 /** Test parsing of dependency information and loading of static version information.
30  * Ensures that malformed manifests are rejected correctly.
31  * @author Jesse Glick
32  */

33 public class DependencyTest extends NbTestCase {
34
35     public DependencyTest(String JavaDoc name) {
36         super(name);
37     }
38
39     public void testParseModule() throws Exception JavaDoc {
40         Set JavaDoc singleton = Dependency.create(Dependency.TYPE_MODULE, "org.foo.bar/1 > 1.1");
41         assertTrue(singleton.size() == 1);
42         Dependency d = (Dependency)singleton.iterator().next();
43         //System.err.println("dependency: " + d);
44
assertTrue(d.getType() == Dependency.TYPE_MODULE);
45         assertEquals("org.foo.bar/1", d.getName());
46         assertTrue(d.getComparison() == Dependency.COMPARE_SPEC);
47         assertEquals("1.1", d.getVersion());
48     }
49     
50     public void testParsePackage() throws Exception JavaDoc {
51         Set JavaDoc singleton = Dependency.create(Dependency.TYPE_PACKAGE, "javax.help[HelpSet] = 1.1.2 ");
52         assertTrue(singleton.size() == 1);
53         Dependency d = (Dependency)singleton.iterator().next();
54         assertTrue(d.getType() == Dependency.TYPE_PACKAGE);
55         assertEquals("javax.help[HelpSet]", d.getName());
56         assertTrue(d.getComparison() == Dependency.COMPARE_IMPL);
57         assertEquals("1.1.2", d.getVersion());
58     }
59     
60     public void testParseJavaPlatform() throws Exception JavaDoc {
61         Set JavaDoc singleton = Dependency.create(Dependency.TYPE_JAVA, "Java > 1.3");
62         assertTrue(singleton.size() == 1);
63         Dependency d = (Dependency)singleton.iterator().next();
64         assertTrue(d.getType() == Dependency.TYPE_JAVA);
65         assertEquals(Dependency.JAVA_NAME, d.getName());
66         assertTrue(d.getComparison() == Dependency.COMPARE_SPEC);
67         assertEquals("1.3", d.getVersion());
68     }
69     
70     public void testParseRequires() throws Exception JavaDoc {
71         Set JavaDoc singleton = Dependency.create(Dependency.TYPE_REQUIRES, "some.thing.here");
72         assertTrue(singleton.size() == 1);
73         Dependency d = (Dependency)singleton.iterator().next();
74         assertTrue(d.getType() == Dependency.TYPE_REQUIRES);
75         assertEquals("some.thing.here", d.getName());
76         assertTrue(d.getComparison() == Dependency.COMPARE_ANY);
77         assertEquals(null, d.getVersion());
78         Dependency.create(Dependency.TYPE_REQUIRES, "org.foo.Thing$Inner");
79     }
80     
81     public void testParseMultiple() throws Exception JavaDoc {
82         Set JavaDoc multiple = Dependency.create(Dependency.TYPE_MODULE, " org.foo/1 > 0.1, org.bar ");
83         assertTrue(multiple.size() == 2);
84         Iterator JavaDoc it = multiple.iterator();
85         Dependency d1 = (Dependency)it.next();
86         Dependency d2 = (Dependency)it.next();
87         if (d1.getName().equals("org.bar")) {
88             // Swap so they are in order.
89
Dependency tmp = d1;
90             d1 = d2;
91             d2 = tmp;
92         }
93         assertTrue(d1.getType() == Dependency.TYPE_MODULE);
94         assertEquals("org.foo/1", d1.getName());
95         assertTrue(d1.getComparison() == Dependency.COMPARE_SPEC);
96         assertEquals("0.1", d1.getVersion());
97         assertTrue(d2.getType() == Dependency.TYPE_MODULE);
98         assertEquals("org.bar", d2.getName());
99         assertTrue(d2.getComparison() == Dependency.COMPARE_ANY);
100         assertNull(d2.getVersion());
101         assertTrue(Dependency.create(Dependency.TYPE_PACKAGE, null).isEmpty());
102     }
103     
104     public void testParseCodename() throws Exception JavaDoc {
105         Dependency.create(Dependency.TYPE_MODULE, "org.foo.thing");
106     }
107     
108     public void testParseRangedRelVers() throws Exception JavaDoc {
109         Dependency d1 = (Dependency)Dependency.create(Dependency.TYPE_MODULE,
110             "org.foo/1-2 > 1.1").iterator().next();
111         Dependency d2 = (Dependency)Dependency.create(Dependency.TYPE_MODULE,
112             "org.foo/2-4").iterator().next();
113         assertEquals("org.foo/1-2", d1.getName());
114         assertEquals(Dependency.COMPARE_SPEC, d1.getComparison());
115         assertEquals("1.1", d1.getVersion());
116         assertEquals("org.foo/2-4", d2.getName());
117         assertEquals(Dependency.COMPARE_ANY, d2.getComparison());
118     }
119     
120     private void misparse(int type, String JavaDoc s) {
121         try {
122             Dependency.create(type, s);
123             assertTrue("parsing should have failed for " + s, false);
124         } catch (IllegalArgumentException JavaDoc iae) {
125             // Expected, OK.
126
}
127     }
128     
129     public void testMisparseNothing() throws Exception JavaDoc {
130         misparse(Dependency.TYPE_MODULE, "");
131         misparse(Dependency.TYPE_MODULE, " ");
132     }
133     
134     public void testMisparseWrongType() throws Exception JavaDoc {
135         misparse(Dependency.TYPE_JAVA, "org.foo/1 > 0.9");
136         Dependency.create(Dependency.TYPE_JAVA, "VM = whatever");
137         misparse(Dependency.TYPE_JAVA, "VM");
138     }
139     
140     public void testMisparseBadCodename() throws Exception JavaDoc {
141         misparse(Dependency.TYPE_MODULE, "org.foo/-1");
142         misparse(Dependency.TYPE_MODULE, "org-foo/1");
143         misparse(Dependency.TYPE_MODULE, "org.foo./1");
144     }
145     
146     public void testMisparseBadRangedRelVers() throws Exception JavaDoc {
147         misparse(Dependency.TYPE_MODULE, "org.foo/-1-5");
148         misparse(Dependency.TYPE_MODULE, "org.foo/3-3");
149         misparse(Dependency.TYPE_MODULE, "org.foo/3-");
150         misparse(Dependency.TYPE_MODULE, "org.foo/-3");
151         misparse(Dependency.TYPE_MODULE, "org.foo/3,4,5");
152         misparse(Dependency.TYPE_MODULE, "org.foo/1-2 = build99");
153         misparse(Dependency.TYPE_MODULE, "org.foo/[123] > 1");
154     }
155     
156     public void testMisparseBadRelease() throws Exception JavaDoc {
157         misparse(Dependency.TYPE_MODULE, "org.foo/new");
158     }
159     
160     public void testMisparseMissingVersion() throws Exception JavaDoc {
161         misparse(Dependency.TYPE_MODULE, "org.foo >");
162     }
163     
164     public void testMisparseBadSpec() throws Exception JavaDoc {
165         // Cf. #5573.
166
misparse(Dependency.TYPE_MODULE, "org.foo > 1.2beta");
167     }
168     
169     public void testMisparseMalformedPackage() throws Exception JavaDoc {
170         misparse(Dependency.TYPE_PACKAGE, "org.foo/1");
171         misparse(Dependency.TYPE_PACKAGE, "foo[something");
172         misparse(Dependency.TYPE_PACKAGE, "org.foo[bar.baz]");
173     }
174     
175     public void testMisparseGreaterThanEquals() throws Exception JavaDoc {
176         misparse(Dependency.TYPE_MODULE, "org.foo/1 >= 1.1");
177     }
178     
179     public void testMisparseScriptingError() throws Exception JavaDoc {
180         // Scripting module did this. You cannot declare a numeric dependency
181
// on a single class--there is no Package object to even compare it to.
182
misparse(Dependency.TYPE_PACKAGE, "[org.python.util.PythonInterpreter] > 1.0");
183     }
184     
185     public void testMisparseRequiresWithVersion() throws Exception JavaDoc {
186         misparse(Dependency.TYPE_REQUIRES, "some.thing > 1.0");
187         misparse(Dependency.TYPE_REQUIRES, "some.thing = whatever-impl-version");
188     }
189     
190     public void testMisparseRequiresBadCodeName() throws Exception JavaDoc {
191         misparse(Dependency.TYPE_REQUIRES, "some-thing");
192     }
193     
194     public void testMisparseDuplicates() throws Exception JavaDoc {
195         misparse(Dependency.TYPE_MODULE, "org.foo/1 > 1.0, org.foo/2 > 2.0");
196         // Was actually used in tomcatint/tomcat40/manifest.mf:
197
Dependency.create(Dependency.TYPE_PACKAGE, "[org.apache.jasper.Constants], [org.apache.jasper.Options]");
198         Dependency.create(Dependency.TYPE_PACKAGE, "org.apache.jasper[Constants], [org.apache.jasper.Options]");
199         misparse(Dependency.TYPE_PACKAGE, "org.apache.jasper[Constants], org.apache.jasper[Options]");
200         misparse(Dependency.TYPE_PACKAGE, "org.apache.jasper > 1.1, org.apache.jasper[Options]");
201         misparse(Dependency.TYPE_REQUIRES, "foo.bar, foo.bar");
202         misparse(Dependency.TYPE_JAVA, "Java > 1.4.0, Java = 1.4.0_01");
203     }
204     
205     public void testConstants() throws Exception JavaDoc {
206         assertEquals("Java", Dependency.JAVA_NAME);
207         assertNotNull(Dependency.JAVA_SPEC);
208         assertNotNull(Dependency.JAVA_IMPL);
209         assertEquals("VM", Dependency.VM_NAME);
210         assertNotNull(Dependency.VM_SPEC);
211         assertNotNull(Dependency.VM_IMPL);
212     }
213     
214 }
215
Popular Tags