KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > xml > XmlModuleDescriptorParserTest


1 /*
2  * This file is subject to the license found in LICENCE.TXT in the root directory of the project.
3  *
4  * #SNAPSHOT#
5  */

6 package fr.jayasoft.ivy.xml;
7
8 import java.io.IOException JavaDoc;
9 import java.text.ParseException JavaDoc;
10 import java.util.Arrays JavaDoc;
11 import java.util.Date JavaDoc;
12 import java.util.GregorianCalendar JavaDoc;
13 import java.util.HashSet JavaDoc;
14
15 import fr.jayasoft.ivy.Artifact;
16 import fr.jayasoft.ivy.Configuration;
17 import fr.jayasoft.ivy.ConflictManager;
18 import fr.jayasoft.ivy.DependencyDescriptor;
19 import fr.jayasoft.ivy.Ivy;
20 import fr.jayasoft.ivy.License;
21 import fr.jayasoft.ivy.ModuleDescriptor;
22 import fr.jayasoft.ivy.ModuleId;
23 import fr.jayasoft.ivy.Configuration.Visibility;
24 import fr.jayasoft.ivy.conflict.FixedConflictManager;
25 import fr.jayasoft.ivy.conflict.NoConflictManager;
26 import fr.jayasoft.ivy.matcher.PatternMatcher;
27 import fr.jayasoft.ivy.parser.AbstractModuleDescriptorParserTester;
28 import fr.jayasoft.ivy.util.XMLHelper;
29
30 /**
31  *
32  */

33 public class XmlModuleDescriptorParserTest extends AbstractModuleDescriptorParserTester {
34     // junit test -- DO NOT REMOVE used by ant to know it's a junit test
35

36     private Ivy _ivy = new Ivy();
37     public void testSimple() throws Exception JavaDoc {
38         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-simple.xml"), true);
39         assertNotNull(md);
40         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
41         assertEquals("mymodule", md.getModuleRevisionId().getName());
42         assertEquals(null, md.getModuleRevisionId().getRevision());
43         assertEquals("integration", md.getStatus());
44         
45         assertNotNull(md.getConfigurations());
46         assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations()));
47         
48         assertNotNull(md.getArtifacts("default"));
49         assertEquals(1, md.getArtifacts("default").length);
50         assertEquals("mymodule", md.getArtifacts("default")[0].getName());
51         assertEquals("jar", md.getArtifacts("default")[0].getType());
52         
53         assertNotNull(md.getDependencies());
54         assertEquals(0, md.getDependencies().length);
55     }
56     
57     public void testEmptyDependencies() throws Exception JavaDoc {
58         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-empty-dependencies.xml"), true);
59         assertNotNull(md);
60         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
61         assertEquals("mymodule", md.getModuleRevisionId().getName());
62         assertEquals("myrev", md.getModuleRevisionId().getRevision());
63         assertEquals("integration", md.getStatus());
64         
65         assertNotNull(md.getConfigurations());
66         assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations()));
67         
68         assertNotNull(md.getArtifacts("default"));
69         assertEquals(1, md.getArtifacts("default").length);
70         assertEquals("mymodule", md.getArtifacts("default")[0].getName());
71         assertEquals("jar", md.getArtifacts("default")[0].getType());
72         
73         assertNotNull(md.getDependencies());
74         assertEquals(0, md.getDependencies().length);
75     }
76     
77     public void testBad() throws IOException JavaDoc {
78         try {
79             XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad.xml"), true);
80             fail("bad ivy file raised no error");
81         } catch (ParseException JavaDoc ex) {
82             if (XMLHelper.canUseSchemaValidation()) {
83                 assertTrue("exception message not explicit. It should contain 'modul', but it's:"+ex.getMessage(), ex.getMessage().indexOf("'modul'") != -1);
84             }
85         }
86     }
87
88     public void testBadOrg() throws IOException JavaDoc {
89         try {
90             XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-org.xml"), true);
91             fail("bad ivy file raised no error");
92         } catch (ParseException JavaDoc ex) {
93             if (XMLHelper.canUseSchemaValidation()) {
94                 assertTrue("invalid exception: "+ex.getMessage(), ex.getMessage().indexOf("organization") != -1);
95             }
96         }
97     }
98
99     public void testBadConfs() throws IOException JavaDoc {
100         try {
101             XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-confs.xml"), true);
102             fail("bad ivy file raised no error");
103         } catch (ParseException JavaDoc ex) {
104             assertTrue("invalid exception: "+ex.getMessage(), ex.getMessage().indexOf("invalidConf") != -1);
105         }
106     }
107
108     public void testNoValidate() throws IOException JavaDoc, ParseException JavaDoc {
109         XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-novalidate.xml"), false);
110     }
111
112     public void testBadVersion() throws IOException JavaDoc {
113         try {
114             XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bad-version.xml"), true);
115             fail("bad version ivy file raised no error");
116         } catch (ParseException JavaDoc ex) {
117             // ok
118
}
119     }
120     
121     public void testFull() throws Exception JavaDoc {
122         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test.xml"), true);
123         assertNotNull(md);
124         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
125         assertEquals("mymodule", md.getModuleRevisionId().getName());
126         assertEquals("myrev", md.getModuleRevisionId().getRevision());
127         assertEquals("integration", md.getStatus());
128         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
129         assertEquals(pubdate, md.getPublicationDate());
130         
131         License[] licenses = md.getLicenses();
132         assertEquals(1, licenses.length);
133         assertEquals("MyLicense", licenses[0].getName());
134         assertEquals("http://www.my.org/mymodule/mylicense.html", licenses[0].getUrl());
135         
136         assertEquals("http://www.my.org/mymodule/", md.getHomePage());
137         
138         Configuration[] confs = md.getConfigurations();
139         assertNotNull(confs);
140         assertEquals(5, confs.length);
141         
142         assertConf(md, "myconf1", "desc 1", Configuration.Visibility.PUBLIC, new String JavaDoc[0]);
143         assertConf(md, "myconf2", "desc 2", Configuration.Visibility.PUBLIC, new String JavaDoc[0]);
144         assertConf(md, "myconf3", "desc 3", Configuration.Visibility.PRIVATE, new String JavaDoc[0]);
145         assertConf(md, "myconf4", "desc 4", Configuration.Visibility.PUBLIC, new String JavaDoc[] {"myconf1", "myconf2"});
146         assertConf(md, "myoldconf", "my old desc", Configuration.Visibility.PUBLIC, new String JavaDoc[0]);
147         
148         assertArtifacts(md.getArtifacts("myconf1"), new String JavaDoc[] {"myartifact1", "myartifact2", "myartifact3", "myartifact4"});
149         assertArtifacts(md.getArtifacts("myconf2"), new String JavaDoc[] {"myartifact1", "myartifact3"});
150         assertArtifacts(md.getArtifacts("myconf3"), new String JavaDoc[] {"myartifact1", "myartifact3", "myartifact4"});
151         assertArtifacts(md.getArtifacts("myconf4"), new String JavaDoc[] {"myartifact1"});
152         
153         DependencyDescriptor[] dependencies = md.getDependencies();
154         assertNotNull(dependencies);
155         assertEquals(13, dependencies.length);
156         
157         // no conf def => equivalent to *->*
158
DependencyDescriptor dd = getDependency(dependencies, "mymodule2");
159         assertNotNull(dd);
160         assertEquals("myorg", dd.getDependencyId().getOrganisation());
161         assertEquals("2.0", dd.getDependencyRevisionId().getRevision());
162         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
163         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
164         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf2", "myconf3", "myconf4"})));
165         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
166         assertFalse(dd.isChanging());
167         assertTrue(dd.isTransitive());
168         
169         // changing = true
170
dd = getDependency(dependencies, "mymodule3");
171         assertNotNull(dd);
172         assertTrue(dd.isChanging());
173         assertFalse(dd.isTransitive());
174         
175         // conf="myconf1" => equivalent to myconf1->myconf1
176
dd = getDependency(dependencies, "yourmodule1");
177         assertNotNull(dd);
178         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
179         assertEquals("1.1", dd.getDependencyRevisionId().getRevision());
180         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations()));
181         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
182         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf2", "myconf3", "myconf4"})));
183         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
184         
185         // conf="myconf1->yourconf1"
186
dd = getDependency(dependencies, "yourmodule2");
187         assertNotNull(dd);
188         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
189         assertEquals("2+", dd.getDependencyRevisionId().getRevision());
190         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations()));
191         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
192         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf2", "myconf3", "myconf4"})));
193         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
194         
195         // conf="myconf1->yourconf1, yourconf2"
196
dd = getDependency(dependencies, "yourmodule3");
197         assertNotNull(dd);
198         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
199         assertEquals("3.1", dd.getDependencyRevisionId().getRevision());
200         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf1"}), Arrays.asList(dd.getModuleConfigurations()));
201         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
202         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf2", "myconf3", "myconf4"})));
203         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
204         
205         // conf="myconf1, myconf2->yourconf1, yourconf2"
206
dd = getDependency(dependencies, "yourmodule4");
207         assertNotNull(dd);
208         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
209         assertEquals("4.1", dd.getDependencyRevisionId().getRevision());
210         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"myconf1", "myconf2"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
211         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
212         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
213         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf3", "myconf4"})));
214         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
215         
216         // conf="myconf1->yourconf1;myconf2->yourconf1, yourconf2"
217
dd = getDependency(dependencies, "yourmodule5");
218         assertNotNull(dd);
219         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
220         assertEquals("5.1", dd.getDependencyRevisionId().getRevision());
221         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"myconf1", "myconf2"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
222         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
223         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
224         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf3", "myconf4"})));
225         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
226         
227         // conf="*->@"
228
dd = getDependency(dependencies, "yourmodule11");
229         assertNotNull(dd);
230         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
231         assertEquals("11.1", dd.getDependencyRevisionId().getRevision());
232         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"*"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
233         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
234         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
235         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf3"}), Arrays.asList(dd.getDependencyConfigurations("myconf3")));
236         assertEquals(Arrays.asList(new String JavaDoc[] {"myconf4"}), Arrays.asList(dd.getDependencyConfigurations("myconf4")));
237
238         dd = getDependency(dependencies, "yourmodule6");
239         assertNotNull(dd);
240         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
241         assertEquals("latest.integration", dd.getDependencyRevisionId().getRevision());
242         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"myconf1", "myconf2"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
243         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
244         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
245         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf3", "myconf4"})));
246         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
247         
248         dd = getDependency(dependencies, "yourmodule7");
249         assertNotNull(dd);
250         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
251         assertEquals("7.1", dd.getDependencyRevisionId().getRevision());
252         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"myconf1", "myconf2"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
253         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1"}), Arrays.asList(dd.getDependencyConfigurations("myconf1")));
254         assertEquals(Arrays.asList(new String JavaDoc[] {"yourconf1", "yourconf2"}), Arrays.asList(dd.getDependencyConfigurations("myconf2")));
255         assertEquals(Arrays.asList(new String JavaDoc[] {}), Arrays.asList(dd.getDependencyConfigurations(new String JavaDoc[] {"myconf3", "myconf4"})));
256         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1", "myconf2", "myconf3", "myconf4"}, new String JavaDoc[0]);
257         
258         dd = getDependency(dependencies, "yourmodule8");
259         assertNotNull(dd);
260         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
261         assertEquals("8.1", dd.getDependencyRevisionId().getRevision());
262         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"*"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
263         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1"}, new String JavaDoc[] {"yourartifact8-1", "yourartifact8-2"});
264         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf2"}, new String JavaDoc[] {"yourartifact8-1", "yourartifact8-2"});
265         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf3"}, new String JavaDoc[] {"yourartifact8-1", "yourartifact8-2"});
266         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf4"}, new String JavaDoc[] {"yourartifact8-1", "yourartifact8-2"});
267         
268         dd = getDependency(dependencies, "yourmodule9");
269         assertNotNull(dd);
270         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
271         assertEquals("9.1", dd.getDependencyRevisionId().getRevision());
272         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"myconf1", "myconf2", "myconf3"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
273         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1"}, new String JavaDoc[] {"yourartifact9-1"});
274         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf2"}, new String JavaDoc[] {"yourartifact9-1", "yourartifact9-2"});
275         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf3"}, new String JavaDoc[] {"yourartifact9-2"});
276         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf4"}, new String JavaDoc[] {});
277         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf1"}, new String JavaDoc[] {});
278         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf2"}, new String JavaDoc[] {});
279         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf3"}, new String JavaDoc[] {});
280         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf4"}, new String JavaDoc[] {});
281         
282         dd = getDependency(dependencies, "yourmodule10");
283         assertNotNull(dd);
284         assertEquals("yourorg", dd.getDependencyId().getOrganisation());
285         assertEquals("10.1", dd.getDependencyRevisionId().getRevision());
286         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"*"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
287         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf1"}, new String JavaDoc[] {"your.*", PatternMatcher.ANY_EXPRESSION});
288         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf2"}, new String JavaDoc[] {"your.*", PatternMatcher.ANY_EXPRESSION});
289         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf3"}, new String JavaDoc[] {"your.*", PatternMatcher.ANY_EXPRESSION});
290         assertDependencyArtifactsIncludes(dd, new String JavaDoc[] {"myconf4"}, new String JavaDoc[] {"your.*", PatternMatcher.ANY_EXPRESSION});
291         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf1"}, new String JavaDoc[] {"toexclude"});
292         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf2"}, new String JavaDoc[] {"toexclude"});
293         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf3"}, new String JavaDoc[] {"toexclude"});
294         assertDependencyArtifactsExcludes(dd, new String JavaDoc[] {"myconf4"}, new String JavaDoc[] {"toexclude"});
295                 
296         ConflictManager cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule1"));
297         assertNotNull(cm);
298         assertTrue(cm instanceof NoConflictManager);
299         
300         cm = md.getConflictManager(new ModuleId("yourorg", "yourmodule2"));
301         assertNotNull(cm);
302         assertTrue(cm instanceof NoConflictManager);
303
304         cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule1"));
305         assertNotNull(cm);
306         assertTrue(cm instanceof FixedConflictManager);
307         FixedConflictManager fcm = (FixedConflictManager)cm;
308         assertEquals(2, fcm.getRevs().size());
309         assertTrue(fcm.getRevs().contains("1.0"));
310         assertTrue(fcm.getRevs().contains("1.1"));
311
312         cm = md.getConflictManager(new ModuleId("theirorg", "theirmodule2"));
313         assertNull(cm);
314     }
315
316     public void testBug60() throws Exception JavaDoc {
317         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-bug60.xml"), true);
318         assertNotNull(md);
319         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
320         assertEquals("mymodule", md.getModuleRevisionId().getName());
321         assertEquals("myrev", md.getModuleRevisionId().getRevision());
322         assertEquals("integration", md.getStatus());
323         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
324         assertEquals(pubdate, md.getPublicationDate());
325         
326         assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations()));
327         
328         assertArtifacts(md.getArtifacts("default"), new String JavaDoc[] {"myartifact1", "myartifact2"});
329     }
330
331     public void testNoArtifact() throws Exception JavaDoc {
332         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-noartifact.xml"), true);
333         assertNotNull(md);
334         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
335         assertEquals("mymodule", md.getModuleRevisionId().getName());
336         assertEquals(null, md.getModuleRevisionId().getRevision());
337         assertEquals("integration", md.getStatus());
338         
339         assertNotNull(md.getConfigurations());
340         assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations()));
341         
342         assertNotNull(md.getArtifacts("default"));
343         assertEquals(0, md.getArtifacts("default").length);
344         
345         assertNotNull(md.getDependencies());
346         assertEquals(0, md.getDependencies().length);
347     }
348     
349     public void testNoPublication() throws Exception JavaDoc {
350         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-nopublication.xml"), true);
351         assertNotNull(md);
352         assertEquals("myorg", md.getModuleRevisionId().getOrganisation());
353         assertEquals("mymodule", md.getModuleRevisionId().getName());
354         assertEquals("myrev", md.getModuleRevisionId().getRevision());
355         assertEquals("integration", md.getStatus());
356         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
357         assertEquals(pubdate, md.getPublicationDate());
358         
359         assertNotNull(md.getConfigurations());
360         assertEquals(Arrays.asList(new Configuration[] {new Configuration("default")}), Arrays.asList(md.getConfigurations()));
361         
362         assertNotNull(md.getArtifacts("default"));
363         assertEquals(1, md.getArtifacts("default").length);
364         
365         assertNotNull(md.getDependencies());
366         assertEquals(1, md.getDependencies().length);
367     }
368     
369     public void testArtifactsDefaults() throws Exception JavaDoc {
370         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-artifacts-defaults.xml"), true);
371         assertNotNull(md);
372         
373         Artifact[] artifacts = md.getArtifacts("default");
374         assertNotNull(artifacts);
375         assertEquals(3, artifacts.length);
376         assertArtifactEquals("mymodule", "jar", "jar", artifacts[0]);
377         assertArtifactEquals("myartifact", "jar", "jar", artifacts[1]);
378         assertArtifactEquals("mymodule", "dll", "dll", artifacts[2]);
379     }
380     
381     private void assertArtifactEquals(String JavaDoc name, String JavaDoc type, String JavaDoc ext, Artifact artifact) {
382         assertEquals(name+"/"+type+"/"+ext, artifact.getName()+"/"+artifact.getType()+"/"+artifact.getExt());
383     }
384
385     public void testDefaultConf() throws Exception JavaDoc {
386         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconf.xml"), true);
387         assertNotNull(md);
388         
389         DependencyDescriptor[] dependencies = md.getDependencies();
390         assertNotNull(dependencies);
391         assertEquals(2, dependencies.length);
392         
393         // no conf def => defaults to defaultConf: default
394
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
395         assertNotNull(dd);
396         assertEquals("myorg", dd.getDependencyId().getOrganisation());
397         assertEquals("1.0", dd.getDependencyRevisionId().getRevision());
398         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getModuleConfigurations()));
399         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default")));
400
401         // confs def: *->*
402
dd = getDependency(dependencies, "mymodule2");
403         assertNotNull(dd);
404         assertEquals("myorg", dd.getDependencyId().getOrganisation());
405         assertEquals("2.0", dd.getDependencyRevisionId().getRevision());
406         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
407         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("default")));
408     }
409     
410     public void testDefaultConf2() throws Exception JavaDoc {
411         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconf2.xml"), true);
412         assertNotNull(md);
413         
414         DependencyDescriptor[] dependencies = md.getDependencies();
415         assertNotNull(dependencies);
416         assertEquals(2, dependencies.length);
417         
418         // no conf def => defaults to defaultConf: *->default
419
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
420         assertNotNull(dd);
421         assertEquals("myorg", dd.getDependencyId().getOrganisation());
422         assertEquals("1.0", dd.getDependencyRevisionId().getRevision());
423         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
424         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default")));
425         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test")));
426
427         // confs def: test: should not use default conf for the right side (use of defaultconfmapping is required for that) => test->test
428
dd = getDependency(dependencies, "mymodule2");
429         assertNotNull(dd);
430         assertEquals("myorg", dd.getDependencyId().getOrganisation());
431         assertEquals("2.0", dd.getDependencyRevisionId().getRevision());
432         assertEquals(Arrays.asList(new String JavaDoc[] {"test"}), Arrays.asList(dd.getModuleConfigurations()));
433         assertEquals(Arrays.asList(new String JavaDoc[] {"test"}), Arrays.asList(dd.getDependencyConfigurations("test")));
434     }
435     
436     public void testDefaultConfMapping() throws Exception JavaDoc {
437         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconfmapping.xml"), true);
438         assertNotNull(md);
439         
440         DependencyDescriptor[] dependencies = md.getDependencies();
441         assertNotNull(dependencies);
442         assertEquals(2, dependencies.length);
443         
444         // no conf def => defaults to defaultConf: *->default
445
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
446         assertNotNull(dd);
447         assertEquals("myorg", dd.getDependencyId().getOrganisation());
448         assertEquals("1.0", dd.getDependencyRevisionId().getRevision());
449         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
450         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("default")));
451         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test")));
452
453         // confs def: test: should use default conf mapping for the right side => test->default
454
dd = getDependency(dependencies, "mymodule2");
455         assertNotNull(dd);
456         assertEquals("myorg", dd.getDependencyId().getOrganisation());
457         assertEquals("2.0", dd.getDependencyRevisionId().getRevision());
458         assertEquals(Arrays.asList(new String JavaDoc[] {"test"}), Arrays.asList(dd.getModuleConfigurations()));
459         assertEquals(Arrays.asList(new String JavaDoc[] {"default"}), Arrays.asList(dd.getDependencyConfigurations("test")));
460     }
461     
462     public void testExtraAttributes() throws Exception JavaDoc {
463         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-extra-attributes.xml"), false);
464         assertNotNull(md);
465
466         assertEquals("infoextravalue", md.getAttribute("infoextra"));
467         assertEquals("infoextravalue", md.getModuleRevisionId().getAttribute("infoextra"));
468
469         assertEquals("confextravalue", md.getConfiguration("default").getAttribute("confextra"));
470         
471         Artifact[] artifacts = md.getArtifacts("default");
472         assertEquals(1, artifacts.length);
473         Artifact art = artifacts[0];
474         assertEquals("art1", art.getName());
475         assertEquals("artextravalue", art.getAttribute("artextra"));
476         
477         
478         DependencyDescriptor[] dependencies = md.getDependencies();
479         assertNotNull(dependencies);
480         assertEquals(1, dependencies.length);
481         
482         DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
483         assertNotNull(dd);
484         assertEquals("myorg", dd.getDependencyId().getOrganisation());
485         assertEquals("1.0", dd.getDependencyRevisionId().getRevision());
486         assertEquals("depextravalue", dd.getAttribute("depextra"));
487         assertEquals("depextravalue", dd.getDependencyRevisionId().getAttribute("depextra"));
488     }
489     
490     public void testImportConfigurations1() throws Exception JavaDoc {
491         // import configurations
492
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import1.xml"), true);
493         assertNotNull(md);
494         
495         // should have imported configurations
496
assertNotNull(md.getConfigurations());
497         assertEquals(Arrays.asList(new Configuration[] {
498                 new Configuration("conf1", Visibility.PUBLIC, "", new String JavaDoc[0]),
499                 new Configuration("conf2", Visibility.PRIVATE, "", new String JavaDoc[0])
500                 }), Arrays.asList(md.getConfigurations()));
501
502         DependencyDescriptor[] dependencies = md.getDependencies();
503         assertNotNull(dependencies);
504         assertEquals(2, dependencies.length);
505         
506         // no conf def => defaults to defaultConf: *->*
507
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
508         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
509         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
510
511         // confs def: conf1->*
512
dd = getDependency(dependencies, "mymodule2");
513         assertEquals(Arrays.asList(new String JavaDoc[] {"conf1"}), Arrays.asList(dd.getModuleConfigurations()));
514         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
515     }
516     
517     public void testImportConfigurations2() throws Exception JavaDoc {
518         // import configurations and add another one
519
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import2.xml"), true);
520         assertNotNull(md);
521         
522         // should have imported configurations and added the one defined in the file itself
523
assertNotNull(md.getConfigurations());
524         assertEquals(Arrays.asList(new Configuration[] {
525                 new Configuration("conf1", Visibility.PUBLIC, "", new String JavaDoc[0]),
526                 new Configuration("conf2", Visibility.PRIVATE, "", new String JavaDoc[0]),
527                 new Configuration("conf3", Visibility.PUBLIC, "", new String JavaDoc[0])
528                 }), Arrays.asList(md.getConfigurations()));
529
530         DependencyDescriptor[] dependencies = md.getDependencies();
531         assertNotNull(dependencies);
532         assertEquals(2, dependencies.length);
533         
534         // no conf def => defaults to defaultConf: *->*
535
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
536         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
537         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
538
539         // confs def: conf2,conf3->*
540
dd = getDependency(dependencies, "mymodule2");
541         assertEquals(new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {"conf2", "conf3"})), new HashSet JavaDoc(Arrays.asList(dd.getModuleConfigurations())));
542         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));
543         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf3")));
544     }
545     
546     public void testImportConfigurations3() throws Exception JavaDoc {
547         // import configurations and default mapping
548
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import3.xml"), true);
549         assertNotNull(md);
550         
551         // should have imported configurations
552
assertNotNull(md.getConfigurations());
553         assertEquals(Arrays.asList(new Configuration[] {
554                 new Configuration("conf1", Visibility.PUBLIC, "", new String JavaDoc[0]),
555                 new Configuration("conf2", Visibility.PRIVATE, "", new String JavaDoc[0])
556                 }), Arrays.asList(md.getConfigurations()));
557
558         DependencyDescriptor[] dependencies = md.getDependencies();
559         assertNotNull(dependencies);
560         assertEquals(2, dependencies.length);
561         
562         // no conf def => defaults to defaultConf defined in imported file: *->@
563
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
564         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
565         assertEquals(Arrays.asList(new String JavaDoc[] {"conf1"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
566         assertEquals(Arrays.asList(new String JavaDoc[] {"conf2"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));
567
568         // confs def: conf1->*
569
dd = getDependency(dependencies, "mymodule2");
570         assertEquals(Arrays.asList(new String JavaDoc[] {"conf1"}), Arrays.asList(dd.getModuleConfigurations()));
571         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
572     }
573     
574     public void testExtendOtherConfigs() throws Exception JavaDoc {
575         // import configurations and default mapping
576
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers1.xml"), true);
577         assertNotNull(md);
578         
579         // has an 'all-public' configuration
580
Configuration allPublic = md.getConfiguration("all-public");
581         assertNotNull(allPublic);
582         
583         // 'all-public' extends all other public configurations
584
String JavaDoc[] allPublicExt = allPublic.getExtends();
585         assertEquals(Arrays.asList(new String JavaDoc[] {"default", "test"}), Arrays.asList(allPublicExt));
586     }
587     
588     public void testImportConfigurationsWithExtendOtherConfigs() throws Exception JavaDoc {
589         // import configurations and default mapping
590
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers2.xml"), true);
591         assertNotNull(md);
592         
593         // has an 'all-public' configuration
594
Configuration allPublic = md.getConfiguration("all-public");
595         assertNotNull(allPublic);
596         
597         // 'all-public' extends all other public configurations
598
String JavaDoc[] allPublicExt = allPublic.getExtends();
599         assertEquals(Arrays.asList(new String JavaDoc[] {"default", "test", "extra"}), Arrays.asList(allPublicExt));
600     }
601     
602     public void testImportConfigurationsWithMappingOverride() throws Exception JavaDoc {
603         // import configurations and default mapping
604
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configurations-import4.xml"), true);
605         assertNotNull(md);
606         
607         // has 2 dependencies
608
DependencyDescriptor[] dependencies = md.getDependencies();
609         assertNotNull(dependencies);
610         assertEquals(2, dependencies.length);
611         
612         // confs dep1: conf1->A;conf2->B (mappingoverride = true)
613
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
614         assertEquals(Arrays.asList(new String JavaDoc[] {"conf2", "conf1"}), Arrays.asList(dd.getModuleConfigurations()));
615         assertEquals(Arrays.asList(new String JavaDoc[] {"A"}), Arrays.asList(dd.getDependencyConfigurations("conf1")));
616         assertEquals(Arrays.asList(new String JavaDoc[] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));
617         
618         // confs dep2: conf2->B
619
dd = getDependency(dependencies, "mymodule2");
620         assertEquals(Arrays.asList(new String JavaDoc[] {"conf2"}), Arrays.asList(dd.getModuleConfigurations()));
621         assertEquals(Arrays.asList(new String JavaDoc[] {"B"}), Arrays.asList(dd.getDependencyConfigurations("conf2")));
622     }
623     
624     public void testImportConfigurationsWithWildcardAndMappingOverride() throws Exception JavaDoc {
625         // import configurations and default mapping
626
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-configextendsothers3.xml"), true);
627         assertNotNull(md);
628         
629         // has 2 dependencies
630
DependencyDescriptor[] dependencies = md.getDependencies();
631         assertNotNull(dependencies);
632         assertEquals(2, dependencies.length);
633         
634         // confs dep1: all-public->all-public (mappingoverride = true)
635
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
636         assertEquals(Arrays.asList(new String JavaDoc[] {"all-public"}), Arrays.asList(dd.getModuleConfigurations()));
637         assertEquals(Arrays.asList(new String JavaDoc[] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public")));
638         
639         // confs dep2: extra->extra;all-public->all-public (mappingoverride = true)
640
dd = getDependency(dependencies, "mymodule2");
641         assertEquals(Arrays.asList(new String JavaDoc[] {"all-public", "extra"}), Arrays.asList(dd.getModuleConfigurations()));
642         assertEquals(Arrays.asList(new String JavaDoc[] {"extra"}), Arrays.asList(dd.getDependencyConfigurations("extra")));
643         assertEquals(Arrays.asList(new String JavaDoc[] {"all-public"}), Arrays.asList(dd.getDependencyConfigurations("all-public")));
644     }
645
646     public void testDefaultConfMappingWithSelectors() throws Exception JavaDoc {
647         // import configurations and default mapping
648
ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(_ivy, getClass().getResource("test-defaultconfmapping-withselectors.xml"), true);
649         assertNotNull(md);
650         
651         // has 3 dependencies
652
DependencyDescriptor[] dependencies = md.getDependencies();
653         assertNotNull(dependencies);
654         assertEquals(3, dependencies.length);
655         
656         // confs dep1: *->default1,default3
657
DependencyDescriptor dd = getDependency(dependencies, "mymodule1");
658         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
659         assertEquals(Arrays.asList(new String JavaDoc[] {"default1", "default3"}), Arrays.asList(dd.getDependencyConfigurations("default")));
660         
661         // confs dep2: test->default2,default3
662
dd = getDependency(dependencies, "mymodule2");
663         assertEquals(Arrays.asList(new String JavaDoc[] {"test"}), Arrays.asList(dd.getModuleConfigurations()));
664         assertEquals(Arrays.asList(new String JavaDoc[] {"default2", "default3"}), Arrays.asList(dd.getDependencyConfigurations("test")));
665         
666         // confs dep3: *->default4
667
dd = getDependency(dependencies, "mymodule3");
668         assertEquals(Arrays.asList(new String JavaDoc[] {"*"}), Arrays.asList(dd.getModuleConfigurations()));
669         assertEquals(Arrays.asList(new String JavaDoc[] {"default4"}), Arrays.asList(dd.getDependencyConfigurations("bla")));
670     }
671 }
672
Popular Tags