KickJava   Java API By Example, From Geeks To Geeks.

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


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.File JavaDoc;
9 import java.net.URL JavaDoc;
10 import java.util.List JavaDoc;
11
12 import junit.framework.TestCase;
13 import fr.jayasoft.ivy.DependencyResolver;
14 import fr.jayasoft.ivy.Ivy;
15 import fr.jayasoft.ivy.LatestStrategy;
16 import fr.jayasoft.ivy.ModuleId;
17 import fr.jayasoft.ivy.latest.LatestRevisionStrategy;
18 import fr.jayasoft.ivy.latest.LatestTimeStrategy;
19 import fr.jayasoft.ivy.parser.ModuleDescriptorParserRegistry;
20 import fr.jayasoft.ivy.report.ReportOutputter;
21 import fr.jayasoft.ivy.report.ResolveReport;
22 import fr.jayasoft.ivy.resolver.ChainResolver;
23 import fr.jayasoft.ivy.resolver.FileSystemResolver;
24 import fr.jayasoft.ivy.resolver.IvyRepResolver;
25 import fr.jayasoft.ivy.resolver.MockResolver;
26 import fr.jayasoft.ivy.url.URLHandler;
27 import fr.jayasoft.ivy.url.URLHandlerDispatcher;
28 import fr.jayasoft.ivy.url.URLHandlerRegistry;
29 import fr.jayasoft.ivy.version.ChainVersionMatcher;
30 import fr.jayasoft.ivy.version.MockVersionMatcher;
31 import fr.jayasoft.ivy.version.VersionMatcher;
32
33 /**
34  * TODO write javadoc
35  */

36 public class XmlIvyConfigurationParserTest extends TestCase {
37     public void test() throws Exception JavaDoc {
38         Ivy ivy = new Ivy();
39         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
40         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-test.xml"));
41         
42         File JavaDoc defaultCache = ivy.getDefaultCache();
43         assertNotNull(defaultCache);
44         assertEquals("mycache", defaultCache.getName());
45         
46         assertFalse(ivy.isCheckUpToDate());
47         assertFalse(ivy.doValidate());
48         
49         assertEquals("[module]/ivys/ivy-[revision].xml", ivy.getCacheIvyPattern());
50         assertEquals("[module]/[type]s/[artifact]-[revision].[ext]", ivy.getCacheArtifactPattern());
51         
52         LatestStrategy latest = ivy.getLatestStrategy("mylatest-revision");
53         assertNotNull(latest);
54         assertTrue(latest instanceof LatestRevisionStrategy);
55         LatestRevisionStrategy l = (LatestRevisionStrategy)latest;
56         assertEquals(new Integer JavaDoc(-2), l.getSpecialMeanings().get("pre"));
57         assertEquals(new Integer JavaDoc(4), l.getSpecialMeanings().get("qa"));
58         
59         DependencyResolver defaultResolver = ivy.getDefaultResolver();
60         assertNotNull(defaultResolver);
61         assertEquals("libraries", defaultResolver.getName());
62         assertTrue(defaultResolver instanceof FileSystemResolver);
63         FileSystemResolver fsres = (FileSystemResolver)defaultResolver;
64         List JavaDoc ivyPatterns = fsres.getIvyPatterns();
65         assertNotNull(ivyPatterns);
66         assertEquals(1, ivyPatterns.size());
67         assertEquals("lib/[organisation]/[module]/ivys/ivy-[revision].xml", ivyPatterns.get(0));
68
69         LatestStrategy strategy = fsres.getLatestStrategy();
70         assertNotNull(strategy);
71         assertTrue(strategy instanceof LatestRevisionStrategy);
72         
73         DependencyResolver internal = ivy.getResolver("internal");
74         assertNotNull(internal);
75         assertTrue(internal instanceof ChainResolver);
76         ChainResolver chain = (ChainResolver)internal;
77         List JavaDoc subresolvers = chain.getResolvers();
78         assertNotNull(subresolvers);
79         assertEquals(2, subresolvers.size());
80         FileSystemResolver fsInt1 = (FileSystemResolver)subresolvers.get(0);
81         assertEquals("int1", fsInt1.getName());
82         assertEquals(1, fsInt1.getIvyPatterns().size());
83         assertEquals("sharedrep/[organisation]/[module]/ivys/ivy-[revision].xml", fsInt1.getIvyPatterns().get(0));
84         assertEquals("int2", ((DependencyResolver)subresolvers.get(1)).getName());
85         
86         strategy = fsInt1.getLatestStrategy();
87         assertNotNull(strategy);
88         assertTrue(strategy instanceof LatestTimeStrategy);
89
90         assertEquals("libraries", ivy.getResolver(new ModuleId("unknown", "lib")).getName());
91         assertEquals("internal", ivy.getResolver(new ModuleId("jayasoft", "swtbinding")).getName());
92         assertEquals("int1", ivy.getResolver(new ModuleId("jayasoft", "ivy")).getName());
93         assertEquals("int1", ivy.getResolver(new ModuleId("jayasoft", "ivycruise")).getName());
94     }
95
96     public void testTypedef() throws Exception JavaDoc {
97         Ivy ivy = new Ivy();
98         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
99         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-typedef.xml"));
100         
101         DependencyResolver mock = ivy.getResolver("mock3");
102         assertNotNull(mock);
103         assertTrue(mock instanceof MockResolver);
104         
105         DependencyResolver internal = ivy.getResolver("internal");
106         assertNotNull(internal);
107         assertTrue(internal instanceof ChainResolver);
108         ChainResolver chain = (ChainResolver)internal;
109         List JavaDoc subresolvers = chain.getResolvers();
110         assertNotNull(subresolvers);
111         assertEquals(2, subresolvers.size());
112         
113         assertEquals("mock1", ((DependencyResolver)subresolvers.get(0)).getName());
114         assertEquals("mock2", ((DependencyResolver)subresolvers.get(1)).getName());
115         assertTrue(subresolvers.get(0) instanceof MockResolver);
116         assertTrue(subresolvers.get(1) instanceof MockResolver);
117     }
118     
119     public void testStatuses() throws Exception JavaDoc {
120         Ivy ivy = new Ivy();
121         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
122         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-status.xml"));
123         
124         assertEquals("bronze", ivy.getStatusManager().getDefaultStatus());
125         assertEquals(0, ivy.getStatusManager().getPriority("gold"));
126         assertEquals(1, ivy.getStatusManager().getPriority("silver"));
127         assertEquals(2, ivy.getStatusManager().getPriority("bronze"));
128         assertEquals(false, ivy.getStatusManager().isIntegration("gold"));
129         assertEquals(false, ivy.getStatusManager().isIntegration("silver"));
130         assertEquals(true, ivy.getStatusManager().isIntegration("bronze"));
131     }
132     
133     public void testConflictManager() throws Exception JavaDoc {
134         Ivy ivy = new Ivy();
135         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
136         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-conflict-manager.xml"));
137         
138         assertEquals("latest-time", ivy.getConflictManager(new ModuleId("jayasoft", "ivyde")).getName());
139         assertEquals("all", ivy.getConflictManager(new ModuleId("jayasoft", "uistate")).getName());
140     }
141     
142     public void testVersionMatchers1() throws Exception JavaDoc {
143         Ivy ivy = new Ivy();
144         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
145         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-vmatcher1.xml"));
146         
147         VersionMatcher mock = ivy.getVersionMatcher("vmock");
148         assertNotNull(mock);
149         assertTrue(mock instanceof MockVersionMatcher);
150         
151         VersionMatcher v = ivy.getVersionMatcher();
152         assertTrue(v instanceof ChainVersionMatcher);
153         ChainVersionMatcher chain = (ChainVersionMatcher) v;
154         assertEquals(3, chain.getMatchers().size());
155         assertTrue(chain.getMatchers().contains(mock));
156         assertTrue(chain.getMatchers().contains(ivy.getVersionMatcher("exact")));
157         assertTrue(chain.getMatchers().contains(ivy.getVersionMatcher("latest")));
158     }
159     
160     public void testVersionMatchers2() throws Exception JavaDoc {
161         Ivy ivy = new Ivy();
162         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
163         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-vmatcher2.xml"));
164         
165         VersionMatcher mock = ivy.getVersionMatcher("vmock");
166         assertNotNull(mock);
167         assertTrue(mock instanceof MockVersionMatcher);
168         
169         VersionMatcher v = ivy.getVersionMatcher();
170         assertTrue(v instanceof ChainVersionMatcher);
171         ChainVersionMatcher chain = (ChainVersionMatcher) v;
172         assertEquals(5, chain.getMatchers().size());
173         assertTrue(chain.getMatchers().contains(mock));
174     }
175     
176     public void testRef() throws Exception JavaDoc {
177         Ivy ivy = new Ivy();
178         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
179         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-ref.xml"));
180         
181         DependencyResolver internal = ivy.getResolver("internal");
182         assertNotNull(internal);
183         assertTrue(internal instanceof ChainResolver);
184         ChainResolver chain = (ChainResolver)internal;
185         List JavaDoc subresolvers = chain.getResolvers();
186         assertNotNull(subresolvers);
187         assertEquals(2, subresolvers.size());
188         FileSystemResolver fsInt1 = (FileSystemResolver)subresolvers.get(0);
189         assertEquals("fs", fsInt1.getName());
190
191         List JavaDoc ivyPatterns = fsInt1.getIvyPatterns();
192         assertNotNull(ivyPatterns);
193         assertEquals(1, ivyPatterns.size());
194         assertEquals("sharedrep/[organisation]/[module]/ivys/ivy-[revision].xml", ivyPatterns.get(0));
195
196         DependencyResolver external = ivy.getResolver("external");
197         assertNotNull(external);
198         assertTrue(external instanceof ChainResolver);
199         chain = (ChainResolver)external;
200         subresolvers = chain.getResolvers();
201         assertNotNull(subresolvers);
202         assertEquals(1, subresolvers.size());
203         FileSystemResolver fsInt2 = (FileSystemResolver)subresolvers.get(0);
204         assertEquals("fs", fsInt2.getName());
205
206         ivyPatterns = fsInt2.getIvyPatterns();
207         assertNotNull(ivyPatterns);
208         assertEquals(1, ivyPatterns.size());
209         assertEquals("sharedrep/[organisation]/[module]/ivys/ivy-[revision].xml", ivyPatterns.get(0));
210     }
211     
212     public void testMacro() throws Exception JavaDoc {
213         Ivy ivy = new Ivy();
214         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
215         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-macro.xml"));
216         
217         DependencyResolver def = ivy.getResolver("default");
218         assertNotNull(def);
219         assertTrue(def instanceof ChainResolver);
220         ChainResolver chain = (ChainResolver)def;
221         List JavaDoc subresolvers = chain.getResolvers();
222         assertNotNull(subresolvers);
223         assertEquals(2, subresolvers.size());
224         FileSystemResolver fsInt1 = (FileSystemResolver)subresolvers.get(0);
225         assertEquals("default-fs1", fsInt1.getName());
226
227         List JavaDoc ivyPatterns = fsInt1.getIvyPatterns();
228         assertNotNull(ivyPatterns);
229         assertEquals(1, ivyPatterns.size());
230         assertEquals("path/to/myrep/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]", ivyPatterns.get(0));
231
232         FileSystemResolver fsInt2 = (FileSystemResolver)subresolvers.get(1);
233         assertEquals("default-fs2", fsInt2.getName());
234
235         ivyPatterns = fsInt2.getIvyPatterns();
236         assertNotNull(ivyPatterns);
237         assertEquals(1, ivyPatterns.size());
238         assertEquals("path/to/secondrep/[organisation]/[module]/[type]s/ivy-[revision].xml", ivyPatterns.get(0));
239         
240         DependencyResolver other = ivy.getResolver("other");
241         assertNotNull(other);
242         assertTrue(other instanceof ChainResolver);
243         chain = (ChainResolver)other;
244         subresolvers = chain.getResolvers();
245         assertNotNull(subresolvers);
246         assertEquals(2, subresolvers.size());
247
248         fsInt2 = (FileSystemResolver)subresolvers.get(1);
249         assertEquals("other-fs2", fsInt2.getName());
250
251         ivyPatterns = fsInt2.getIvyPatterns();
252         assertNotNull(ivyPatterns);
253         assertEquals(1, ivyPatterns.size());
254         assertEquals("path/to/secondrep/[module]/[type]s/ivy-[revision].xml", ivyPatterns.get(0));
255     }
256     
257     public void testMacroAndRef() throws Exception JavaDoc {
258         // test case for IVY-319
259
Ivy ivy = new Ivy();
260         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
261         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-macro+ref.xml"));
262         
263         DependencyResolver shared = ivy.getResolver("shared");
264         assertNotNull(shared);
265         assertTrue(shared instanceof FileSystemResolver);
266         
267         DependencyResolver mychain = ivy.getResolver("mychain");
268         assertNotNull(mychain);
269         assertTrue(mychain instanceof ChainResolver);
270         ChainResolver chain = (ChainResolver)mychain;
271         List JavaDoc subresolvers = chain.getResolvers();
272         assertNotNull(subresolvers);
273         assertEquals(1, subresolvers.size());
274         shared = (DependencyResolver) subresolvers.get(0);
275         assertEquals("shared", shared.getName());
276         assertTrue(shared instanceof FileSystemResolver);
277     }
278     
279     public void testInclude() throws Exception JavaDoc {
280         Ivy ivy = new Ivy();
281         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
282         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-include.xml"));
283         
284         DependencyResolver def = ivy.getResolver("default");
285         assertNotNull(def);
286         assertTrue(def instanceof ChainResolver);
287         ChainResolver chain = (ChainResolver)def;
288         List JavaDoc subresolvers = chain.getResolvers();
289         assertNotNull(subresolvers);
290         assertEquals(2, subresolvers.size());
291         FileSystemResolver fsInt1 = (FileSystemResolver)subresolvers.get(0);
292         assertEquals("default-fs1", fsInt1.getName());
293
294         List JavaDoc ivyPatterns = fsInt1.getIvyPatterns();
295         assertNotNull(ivyPatterns);
296         assertEquals(1, ivyPatterns.size());
297         assertEquals("path/to/myrep/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]", ivyPatterns.get(0));
298         
299         DependencyResolver inc = ivy.getResolver("includeworks");
300         assertNotNull(inc);
301         assertTrue(inc instanceof ChainResolver);
302         chain = (ChainResolver)inc;
303         subresolvers = chain.getResolvers();
304         assertNotNull(subresolvers);
305         assertEquals(2, subresolvers.size());
306
307         fsInt1 = (FileSystemResolver)subresolvers.get(0);
308         assertEquals("includeworks-fs1", fsInt1.getName());
309
310         ivyPatterns = fsInt1.getIvyPatterns();
311         assertNotNull(ivyPatterns);
312         assertEquals(1, ivyPatterns.size());
313         assertEquals("included/myrep/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]", ivyPatterns.get(0));
314     }
315     
316     public void testParser() throws Exception JavaDoc {
317         Ivy ivy = new Ivy();
318         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
319         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-parser.xml"));
320         assertEquals("fr.jayasoft.ivy.parser.ModuleDescriptorParserRegistryTest$MyParser", ModuleDescriptorParserRegistry.getInstance().getParsers()[0].getClass().getName());
321     }
322     
323     public void testOutputter() throws Exception JavaDoc {
324         Ivy ivy = new Ivy();
325         XmlIvyConfigurationParser parser = new XmlIvyConfigurationParser(ivy);
326         parser.parse(XmlIvyConfigurationParserTest.class.getResource("ivyconf-outputter.xml"));
327         
328         //System.out.println(Arrays.asList(ivy.getReportOutputters()));
329

330         ReportOutputter testOutputter = ivy.getReportOutputter("test");
331         assertNotNull(testOutputter);
332         assertTrue(testOutputter instanceof MyOutputter);
333     }
334     
335     private void configureURLHandler() {
336         URLHandlerDispatcher dispatcher = new URLHandlerDispatcher();
337         URLHandler httpHandler = URLHandlerRegistry.getHttp();
338         dispatcher.setDownloader("http", httpHandler);
339         dispatcher.setDownloader("https", httpHandler);
340         URLHandlerRegistry.setDefault(dispatcher);
341     }
342     
343     public static class MyOutputter implements ReportOutputter {
344
345        public void output(ResolveReport report, File JavaDoc destDir) {
346        }
347
348        public String JavaDoc getName() {
349            return "test";
350        }
351        
352     }
353 }
354
Popular Tags