1 19 20 package org.openide.modules; 21 22 import java.util.Iterator ; 23 import java.util.Set ; 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 33 public class DependencyTest extends NbTestCase { 34 35 public DependencyTest(String name) { 36 super(name); 37 } 38 39 public void testParseModule() throws Exception { 40 Set 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 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 { 51 Set 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 { 61 Set 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 { 71 Set 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 { 82 Set multiple = Dependency.create(Dependency.TYPE_MODULE, " org.foo/1 > 0.1, org.bar "); 83 assertTrue(multiple.size() == 2); 84 Iterator it = multiple.iterator(); 85 Dependency d1 = (Dependency)it.next(); 86 Dependency d2 = (Dependency)it.next(); 87 if (d1.getName().equals("org.bar")) { 88 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 { 105 Dependency.create(Dependency.TYPE_MODULE, "org.foo.thing"); 106 } 107 108 public void testParseRangedRelVers() throws Exception { 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 s) { 121 try { 122 Dependency.create(type, s); 123 assertTrue("parsing should have failed for " + s, false); 124 } catch (IllegalArgumentException iae) { 125 } 127 } 128 129 public void testMisparseNothing() throws Exception { 130 misparse(Dependency.TYPE_MODULE, ""); 131 misparse(Dependency.TYPE_MODULE, " "); 132 } 133 134 public void testMisparseWrongType() throws Exception { 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 { 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 { 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 { 157 misparse(Dependency.TYPE_MODULE, "org.foo/new"); 158 } 159 160 public void testMisparseMissingVersion() throws Exception { 161 misparse(Dependency.TYPE_MODULE, "org.foo >"); 162 } 163 164 public void testMisparseBadSpec() throws Exception { 165 misparse(Dependency.TYPE_MODULE, "org.foo > 1.2beta"); 167 } 168 169 public void testMisparseMalformedPackage() throws Exception { 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 { 176 misparse(Dependency.TYPE_MODULE, "org.foo/1 >= 1.1"); 177 } 178 179 public void testMisparseScriptingError() throws Exception { 180 misparse(Dependency.TYPE_PACKAGE, "[org.python.util.PythonInterpreter] > 1.0"); 183 } 184 185 public void testMisparseRequiresWithVersion() throws Exception { 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 { 191 misparse(Dependency.TYPE_REQUIRES, "some-thing"); 192 } 193 194 public void testMisparseDuplicates() throws Exception { 195 misparse(Dependency.TYPE_MODULE, "org.foo/1 > 1.0, org.foo/2 > 2.0"); 196 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 { 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 |