KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > ConsistencyVerifierTest


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-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans;
21
22 import java.util.Arrays JavaDoc;
23 import java.util.HashSet JavaDoc;
24 import java.util.Set JavaDoc;
25 import java.util.jar.Manifest JavaDoc;
26 import org.netbeans.junit.NbTestCase;
27
28 /**
29  * @author Jesse Glick
30  */

31 public class ConsistencyVerifierTest extends NbTestCase {
32
33     public ConsistencyVerifierTest(String JavaDoc n) {
34         super(n);
35     }
36
37     private Set JavaDoc<Manifest JavaDoc> modules(String JavaDoc... descs) {
38         Set JavaDoc<Manifest JavaDoc> modules = new HashSet JavaDoc<Manifest JavaDoc>();
39         for (String JavaDoc desc : descs) {
40             Manifest JavaDoc m = new Manifest JavaDoc();
41             for (String JavaDoc piece : desc.split("; ")) {
42                 String JavaDoc[] lhsRhs = piece.split("=");
43                 assert lhsRhs.length == 2 : "'" + piece + "' in '" + desc + "'";
44                 m.getMainAttributes().putValue(
45                         lhsRhs[0].length() == 0 ? "OpenIDE-Module" : "OpenIDE-Module-" + lhsRhs[0],
46                         lhsRhs[1]);
47             }
48             modules.add(m);
49         }
50         return modules;
51     }
52
53     private void assertProblems(String JavaDoc problems, String JavaDoc... descs) {
54         assertEquals("for " + Arrays.toString(descs),
55                 problems, ConsistencyVerifier.findInconsistencies(modules(descs)).toString());
56     }
57
58     public void testBasicFunctionality() throws Exception JavaDoc {
59         assertProblems("{}",
60                 "=foo",
61                 "=bar; Module-Dependencies=foo");
62         assertProblems("{foo=[module bar]}",
63                 "=foo; Module-Dependencies=bar");
64         assertProblems("{foo=[requires svc]}",
65                 "=foo; Requires=svc");
66         assertProblems("{}",
67                 "=foo; Requires=svc",
68                 "=bar; Provides=svc");
69         assertProblems("{bar=[requires svc], foo=[requires svc]}",
70                 "=foo; Requires=svc",
71                 "=bar; Requires=svc");
72         assertProblems("{foo=[module bar > 2.0, requires svc]}",
73                 "=foo; Requires=svc; Module-Dependencies=bar > 2.0",
74                 "=bar; Specification-Version=1.5");
75     }
76
77     public void testStandardProvides() throws Exception JavaDoc {
78         assertProblems("{}",
79                 "=foo; Requires=org.openide.modules.ModuleFormat1");
80         assertProblems("{foo=[requires org.openide.modules.ModuleFormat2]}",
81                 "=foo; Requires=org.openide.modules.ModuleFormat2");
82         assertProblems("{}",
83                 "=foo; Requires=org.openide.modules.os.Unix");
84         assertProblems("{}",
85                 "=foo; Requires=org.openide.modules.os.PlainUnix");
86         assertProblems("{}",
87                 "=foo; Requires=org.openide.modules.os.Windows");
88         assertProblems("{}",
89                 "=foo; Requires=org.openide.modules.os.MacOSX");
90         assertProblems("{}",
91                 "=foo; Requires=org.openide.modules.os.OS2");
92         assertProblems("{foo=[requires org.openide.modules.os.Windoze]}",
93                 "=foo; Requires=org.openide.modules.os.Windoze");
94     }
95
96     public void testIAE() throws Exception JavaDoc {
97         try {
98             ConsistencyVerifier.findInconsistencies(modules("=foo; Whatever=1", "=foo; Whatever=2"));
99             fail();
100         } catch (IllegalArgumentException JavaDoc x) {}
101         try {
102             ConsistencyVerifier.findInconsistencies(modules("Whatever=17"));
103             fail();
104         } catch (IllegalArgumentException JavaDoc x) {}
105         try {
106             ConsistencyVerifier.findInconsistencies(modules("=11"));
107             fail();
108         } catch (IllegalArgumentException JavaDoc x) {}
109     }
110
111 }
112
Popular Tags