KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > resolver > FileSystemResolverTest


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.resolver;
7
8 import java.io.BufferedReader JavaDoc;
9 import java.io.File JavaDoc;
10 import java.io.FileReader JavaDoc;
11 import java.util.Date JavaDoc;
12 import java.util.GregorianCalendar JavaDoc;
13
14 import junit.framework.TestCase;
15
16 import org.apache.tools.ant.Project;
17 import org.apache.tools.ant.taskdefs.Delete;
18
19 import fr.jayasoft.ivy.Artifact;
20 import fr.jayasoft.ivy.DefaultArtifact;
21 import fr.jayasoft.ivy.DefaultDependencyDescriptor;
22 import fr.jayasoft.ivy.Ivy;
23 import fr.jayasoft.ivy.ModuleRevisionId;
24 import fr.jayasoft.ivy.ResolveData;
25 import fr.jayasoft.ivy.ResolvedModuleRevision;
26 import fr.jayasoft.ivy.latest.LatestRevisionStrategy;
27 import fr.jayasoft.ivy.latest.LatestTimeStrategy;
28 import fr.jayasoft.ivy.report.ArtifactDownloadReport;
29 import fr.jayasoft.ivy.report.DownloadReport;
30 import fr.jayasoft.ivy.report.DownloadStatus;
31 import fr.jayasoft.ivy.util.FileUtil;
32
33 /**
34  *
35  */

36 public class FileSystemResolverTest extends TestCase {
37
38     private static final String JavaDoc FS = System.getProperty("file.separator");
39     private static final String JavaDoc IVY_PATTERN = "test"+FS+"repositories"+FS+"1"+FS+"[organisation]"+FS+"[module]"+FS+"ivys"+FS+"ivy-[revision].xml";
40     private File JavaDoc _cache;
41     private ResolveData _data;
42     private Ivy _ivy = new Ivy();
43     
44     public FileSystemResolverTest() {
45         setupLastModified();
46     }
47     
48     protected void setUp() throws Exception JavaDoc {
49         _cache = new File JavaDoc("build/cache");
50         _data = new ResolveData(_ivy, _cache, null, null, true);
51         _cache.mkdirs();
52     }
53     
54     private void setupLastModified() {
55         // change important last modified dates cause svn doesn't keep them
56
long minute = 60 * 1000;
57         long time = new GregorianCalendar JavaDoc().getTimeInMillis() - (4 * minute);
58         new File JavaDoc("test/repositories/1/org1/mod1.1/ivys/ivy-1.0.xml").setLastModified(time);
59         time += minute;
60         new File JavaDoc("test/repositories/1/org1/mod1.1/ivys/ivy-1.0.1.xml").setLastModified(time);
61         time += minute;
62         new File JavaDoc("test/repositories/1/org1/mod1.1/ivys/ivy-1.1.xml").setLastModified(time);
63         time += minute;
64         new File JavaDoc("test/repositories/1/org1/mod1.1/ivys/ivy-2.0.xml").setLastModified(time);
65     }
66
67     protected void tearDown() throws Exception JavaDoc {
68         Delete del = new Delete();
69         del.setProject(new Project());
70         del.setDir(_cache);
71         del.execute();
72     }
73
74     public void testFixedRevision() throws Exception JavaDoc {
75         FileSystemResolver resolver = new FileSystemResolver();
76         resolver.setName("test");
77         resolver.setIvy(_ivy);
78         assertEquals("test", resolver.getName());
79         
80         resolver.addIvyPattern(IVY_PATTERN);
81         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
82         
83         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.0");
84         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
85         assertNotNull(rmr);
86         
87         assertEquals(mrid, rmr.getId());
88         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
89         assertEquals(pubdate, rmr.getPublicationDate());
90         
91         
92         // test to ask to download
93
DefaultArtifact artifact = new DefaultArtifact(mrid, pubdate, "mod1.1", "jar", "jar");
94         DownloadReport report = resolver.download(new Artifact[] {artifact}, _data.getIvy(), _cache, false);
95         assertNotNull(report);
96         
97         assertEquals(1, report.getArtifactsReports().length);
98         
99         ArtifactDownloadReport ar = report.getArtifactReport(artifact);
100         assertNotNull(ar);
101         
102         assertEquals(artifact, ar.getArtifact());
103         assertEquals(DownloadStatus.SUCCESSFUL, ar.getDownloadStatus());
104
105         // test to ask to download again, should use cache
106
report = resolver.download(new Artifact[] {artifact}, _data.getIvy(), _cache, false);
107         assertNotNull(report);
108         
109         assertEquals(1, report.getArtifactsReports().length);
110         
111         ar = report.getArtifactReport(artifact);
112         assertNotNull(ar);
113         
114         assertEquals(artifact, ar.getArtifact());
115         assertEquals(DownloadStatus.NO, ar.getDownloadStatus());
116     }
117
118     public void testMaven2() throws Exception JavaDoc {
119         FileSystemResolver resolver = new FileSystemResolver();
120         resolver.setName("test");
121         resolver.setIvy(_ivy);
122         resolver.setM2compatible(true);
123         assertEquals("test", resolver.getName());
124         
125         resolver.addIvyPattern("test/repositories/m2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]");
126         resolver.addArtifactPattern("test/repositories/m2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]");
127         
128         ModuleRevisionId mrid = ModuleRevisionId.newInstance("fr.jayasoft", "test", "1.0");
129         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
130         assertNotNull(rmr);
131
132         mrid = ModuleRevisionId.newInstance("fr.jayasoft.unknown", "test", "1.0");
133         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
134         assertNull(rmr);
135         resolver.reportFailure();
136     }
137
138     public void testChecksum() throws Exception JavaDoc {
139         FileSystemResolver resolver = new FileSystemResolver();
140         resolver.setName("test");
141         resolver.setIvy(_ivy);
142         
143         resolver.addIvyPattern("test/repositories/checksums/[module]/[artifact]-[revision].[ext]");
144         resolver.addArtifactPattern("test/repositories/checksums/[module]/[artifact]-[revision].[ext]");
145         
146         resolver.setChecksums("sha1, md5");
147         ModuleRevisionId mrid = ModuleRevisionId.newInstance("test", "allright", "1.0");
148         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
149         assertNotNull(rmr);
150         DownloadReport dr = resolver.download(rmr.getDescriptor().getAllArtifacts(), _ivy, _cache, false);
151         assertEquals(2, dr.getArtifactsReports(DownloadStatus.SUCCESSFUL).length);
152
153         resolver.setChecksums("md5");
154         mrid = ModuleRevisionId.newInstance("test", "badivycs", "1.0");
155         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
156         assertNull(rmr);
157         resolver.setChecksums("none");
158         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
159         assertNotNull(rmr);
160         dr = resolver.download(new Artifact[] {new DefaultArtifact(mrid, rmr.getPublicationDate(), mrid.getName(), "jar", "jar")}, _ivy, _cache, false);
161         assertEquals(1, dr.getArtifactsReports(DownloadStatus.SUCCESSFUL).length);
162
163         resolver.setChecksums("md5");
164         mrid = ModuleRevisionId.newInstance("test", "badartcs", "1.0");
165         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
166         assertNotNull(rmr);
167         dr = resolver.download(new Artifact[] {new DefaultArtifact(mrid, rmr.getPublicationDate(), mrid.getName(), "jar", "jar")}, _ivy, _cache, false);
168         assertEquals(1, dr.getArtifactsReports(DownloadStatus.FAILED).length);
169         
170         resolver.setChecksums("");
171         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
172         assertNotNull(rmr);
173         dr = resolver.download(new Artifact[] {new DefaultArtifact(mrid, rmr.getPublicationDate(), mrid.getName(), "jar", "jar")}, _ivy, _cache, false);
174         assertEquals(1, dr.getArtifactsReports(DownloadStatus.SUCCESSFUL).length);
175     }
176
177     public void testCheckModified() throws Exception JavaDoc {
178         FileSystemResolver resolver = new FileSystemResolver();
179         resolver.setName("test");
180         resolver.setIvy(_ivy);
181         _ivy.addResolver(resolver);
182         assertEquals("test", resolver.getName());
183         
184         resolver.addIvyPattern("test"+FS+"repositories"+FS+"checkmodified"+FS+"ivy-[revision].xml");
185         File JavaDoc modify = new File JavaDoc("test/repositories/checkmodified/ivy-1.0.xml");
186         FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/ivy-1.0-before.xml"), modify, null);
187         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
188         modify.setLastModified(pubdate.getTime());
189         
190         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.0");
191         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
192         assertNotNull(rmr);
193         
194         assertEquals(mrid, rmr.getId());
195         assertEquals(pubdate, rmr.getPublicationDate());
196                 
197         // updates ivy file in repository
198
FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/ivy-1.0-after.xml"), modify, null);
199         pubdate = new GregorianCalendar JavaDoc(2005, 4, 1, 11, 0, 0).getTime();
200         modify.setLastModified(pubdate.getTime());
201         
202         // should not get the new version
203
resolver.setCheckmodified(false);
204         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
205         assertNotNull(rmr);
206         
207         assertEquals(mrid, rmr.getId());
208         assertEquals(new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime(), rmr.getPublicationDate());
209
210         // should now get the new version
211
resolver.setCheckmodified(true);
212         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
213         assertNotNull(rmr);
214         
215         assertEquals(mrid, rmr.getId());
216         assertEquals(pubdate, rmr.getPublicationDate());
217     }
218
219     public void testNoRevision() throws Exception JavaDoc {
220         FileSystemResolver resolver = new FileSystemResolver();
221         resolver.setName("test");
222         resolver.setIvy(_ivy);
223         _ivy.addResolver(resolver);
224         assertEquals("test", resolver.getName());
225         
226         resolver.addIvyPattern("test"+FS+"repositories"+FS+"norevision"+FS+"ivy-[module].xml");
227         resolver.addArtifactPattern("test"+FS+"repositories"+FS+"norevision"+FS+"[artifact].[ext]");
228         File JavaDoc modify = new File JavaDoc("test/repositories/norevision/ivy-mod1.1.xml");
229         File JavaDoc artifact = new File JavaDoc("test/repositories/norevision/mod1.1.jar");
230         
231         // 'publish' 'before' version
232
FileUtil.copy(new File JavaDoc("test/repositories/norevision/ivy-mod1.1-before.xml"), modify, null);
233         FileUtil.copy(new File JavaDoc("test/repositories/norevision/mod1.1-before.jar"), artifact, null);
234         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
235         modify.setLastModified(pubdate.getTime());
236         
237         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "latest.integration");
238         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
239         assertNotNull(rmr);
240         
241         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.1", "1.0"), rmr.getId());
242         assertEquals(pubdate, rmr.getPublicationDate());
243         
244         Artifact[] artifacts = rmr.getDescriptor().getArtifacts("default");
245         File JavaDoc archiveFileInCache = _ivy.getArchiveFileInCache(_cache, artifacts[0]);
246         resolver.download(artifacts, _ivy, _cache, false);
247         assertTrue(archiveFileInCache.exists());
248         BufferedReader JavaDoc r = new BufferedReader JavaDoc(new FileReader JavaDoc(archiveFileInCache));
249         assertEquals("before", r.readLine());
250         r.close();
251                 
252         // updates ivy file and artifact in repository
253
FileUtil.copy(new File JavaDoc("test/repositories/norevision/ivy-mod1.1-after.xml"), modify, null);
254         FileUtil.copy(new File JavaDoc("test/repositories/norevision/mod1.1-after.jar"), artifact, null);
255         pubdate = new GregorianCalendar JavaDoc(2005, 4, 1, 11, 0, 0).getTime();
256         modify.setLastModified(pubdate.getTime());
257         // no need to update new artifact timestamp cause it isn't used
258

259         // should get the new version even if checkModified is false, beacause we ask a latest.integration
260
resolver.setCheckmodified(false);
261         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
262         assertNotNull(rmr);
263         
264         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.1", "1.1"), rmr.getId());
265         assertEquals(pubdate, rmr.getPublicationDate());
266
267         artifacts = rmr.getDescriptor().getArtifacts("default");
268         archiveFileInCache = _ivy.getArchiveFileInCache(_cache, artifacts[0]);
269         
270         assertFalse(archiveFileInCache.exists());
271
272         // should download the new artifact
273
artifacts = rmr.getDescriptor().getArtifacts("default");
274         resolver.download(artifacts, _ivy, _cache, false);
275         assertTrue(archiveFileInCache.exists());
276         r = new BufferedReader JavaDoc(new FileReader JavaDoc(archiveFileInCache));
277         assertEquals("after", r.readLine());
278         r.close();
279     }
280
281     public void testChanging() throws Exception JavaDoc {
282         FileSystemResolver resolver = new FileSystemResolver();
283         resolver.setName("test");
284         resolver.setIvy(_ivy);
285         _ivy.addResolver(resolver);
286         assertEquals("test", resolver.getName());
287         
288         resolver.addIvyPattern("test"+FS+"repositories"+FS+"checkmodified"+FS+"ivy-[revision].xml");
289         resolver.addArtifactPattern("test"+FS+"repositories"+FS+"checkmodified"+FS+"[artifact]-[revision].[ext]");
290         File JavaDoc modify = new File JavaDoc("test/repositories/checkmodified/ivy-1.0.xml");
291         File JavaDoc artifact = new File JavaDoc("test/repositories/checkmodified/mod1.1-1.0.jar");
292         
293         // 'publish' 'before' version
294
FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/ivy-1.0-before.xml"), modify, null);
295         FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/mod1.1-1.0-before.jar"), artifact, null);
296         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
297         modify.setLastModified(pubdate.getTime());
298         
299         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.0");
300         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
301         assertNotNull(rmr);
302         
303         assertEquals(mrid, rmr.getId());
304         assertEquals(pubdate, rmr.getPublicationDate());
305         
306         Artifact[] artifacts = rmr.getDescriptor().getArtifacts("default");
307         resolver.download(artifacts, _ivy, _cache, false);
308         File JavaDoc archiveFileInCache = _ivy.getArchiveFileInCache(_cache, artifacts[0]);
309         assertTrue(archiveFileInCache.exists());
310         BufferedReader JavaDoc r = new BufferedReader JavaDoc(new FileReader JavaDoc(archiveFileInCache));
311         assertEquals("before", r.readLine());
312         r.close();
313                 
314         // updates ivy file and artifact in repository
315
FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/ivy-1.0-after.xml"), modify, null);
316         FileUtil.copy(new File JavaDoc("test/repositories/checkmodified/mod1.1-1.0-after.jar"), artifact, null);
317         pubdate = new GregorianCalendar JavaDoc(2005, 4, 1, 11, 0, 0).getTime();
318         modify.setLastModified(pubdate.getTime());
319         // no need to update new artifact timestamp cause it isn't used
320

321         // should not get the new version: checkmodified is false and edpendency is not told to be a changing one
322
resolver.setCheckmodified(false);
323         rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
324         assertNotNull(rmr);
325         
326         assertEquals(mrid, rmr.getId());
327         assertEquals(new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime(), rmr.getPublicationDate());
328
329         assertTrue(archiveFileInCache.exists());
330         r = new BufferedReader JavaDoc(new FileReader JavaDoc(archiveFileInCache));
331         assertEquals("before", r.readLine());
332         r.close();
333
334         // should now get the new version cause we say it's a changing one
335
rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false, true), _data);
336         assertNotNull(rmr);
337         
338         assertEquals(mrid, rmr.getId());
339         assertEquals(pubdate, rmr.getPublicationDate());
340
341         assertFalse(archiveFileInCache.exists());
342
343         artifacts = rmr.getDescriptor().getArtifacts("default");
344         resolver.download(artifacts, _ivy, _cache, false);
345         assertTrue(archiveFileInCache.exists());
346         r = new BufferedReader JavaDoc(new FileReader JavaDoc(archiveFileInCache));
347         assertEquals("after", r.readLine());
348         r.close();
349     }
350
351     public void testLatestTime() throws Exception JavaDoc {
352         FileSystemResolver resolver = new FileSystemResolver();
353         resolver.setName("test");
354         resolver.setIvy(_ivy);
355         assertEquals("test", resolver.getName());
356         
357         resolver.addIvyPattern(IVY_PATTERN);
358         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
359         
360         resolver.setLatestStrategy(new LatestTimeStrategy());
361         
362         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "2.0");
363         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(ModuleRevisionId.newInstance("org1", "mod1.1", "latest.integration"), false), _data);
364         assertNotNull(rmr);
365         
366         assertEquals(mrid, rmr.getId());
367         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2005, 1, 15, 11, 0, 0).getTime();
368         assertEquals(pubdate, rmr.getPublicationDate());
369     }
370
371     public void testLatestRevision() throws Exception JavaDoc {
372         FileSystemResolver resolver = new FileSystemResolver();
373         resolver.setName("test");
374         resolver.setIvy(_ivy);
375         assertEquals("test", resolver.getName());
376         
377         resolver.addIvyPattern(IVY_PATTERN);
378         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
379         
380         resolver.setLatestStrategy(new LatestRevisionStrategy());
381         
382         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "2.0");
383         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(ModuleRevisionId.newInstance("org1", "mod1.1", "latest.integration"), false), _data);
384         assertNotNull(rmr);
385         
386         assertEquals(mrid, rmr.getId());
387         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2005, 1, 15, 11, 0, 0).getTime();
388         assertEquals(pubdate, rmr.getPublicationDate());
389     }
390
391     public void testRelativePath() throws Exception JavaDoc {
392         FileSystemResolver resolver = new FileSystemResolver();
393         resolver.setName("test");
394         resolver.setIvy(_ivy);
395         assertEquals("test", resolver.getName());
396         
397         resolver.addIvyPattern(new File JavaDoc("src/java").getAbsolutePath()+"/../../"+IVY_PATTERN);
398         resolver.addArtifactPattern("src/../test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
399         
400         resolver.setLatestStrategy(new LatestRevisionStrategy());
401         
402         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "2.0");
403         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(ModuleRevisionId.newInstance("org1", "mod1.1", "latest.integration"), false), _data);
404         assertNotNull(rmr);
405         
406         assertEquals(mrid, rmr.getId());
407         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2005, 1, 15, 11, 0, 0).getTime();
408         assertEquals(pubdate, rmr.getPublicationDate());
409     }
410
411     public void testFormattedLatestTime() throws Exception JavaDoc {
412         FileSystemResolver resolver = new FileSystemResolver();
413         resolver.setName("test");
414         resolver.setIvy(_ivy);
415         assertEquals("test", resolver.getName());
416         
417         resolver.addIvyPattern(IVY_PATTERN);
418         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
419         
420         resolver.setLatestStrategy(new LatestTimeStrategy());
421         
422         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.1");
423         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(ModuleRevisionId.newInstance("org1", "mod1.1", "1+"), false), _data);
424         assertNotNull(rmr);
425         
426         assertEquals(mrid, rmr.getId());
427         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2005, 0, 2, 11, 0, 0).getTime();
428         assertEquals(pubdate, rmr.getPublicationDate());
429     }
430
431     public void testFormattedLatestRevision() throws Exception JavaDoc {
432         FileSystemResolver resolver = new FileSystemResolver();
433         resolver.setName("test");
434         resolver.setIvy(_ivy);
435         assertEquals("test", resolver.getName());
436         
437         resolver.addIvyPattern(IVY_PATTERN);
438         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
439         
440         resolver.setLatestStrategy(new LatestRevisionStrategy());
441         
442         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.1");
443         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(ModuleRevisionId.newInstance("org1", "mod1.1", "1+"), false), _data);
444         assertNotNull(rmr);
445         
446         assertEquals(mrid, rmr.getId());
447         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2005, 0, 2, 11, 0, 0).getTime();
448         assertEquals(pubdate, rmr.getPublicationDate());
449     }
450
451     public void testPublish() throws Exception JavaDoc {
452         try {
453             FileSystemResolver resolver = new FileSystemResolver();
454             resolver.setName("test");
455             resolver.setIvy(_ivy);
456             assertEquals("test", resolver.getName());
457             
458             resolver.addIvyPattern("test"+FS+"repositories"+FS+"1"+FS+"[organisation]"+FS+"[module]"+FS+"[revision]"+FS+"[artifact].[ext]");
459             resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]");
460             
461             ModuleRevisionId mrid = ModuleRevisionId.newInstance("myorg", "mymodule", "myrevision");
462             Artifact ivyArtifact = new DefaultArtifact(mrid, new Date JavaDoc(), "ivy", "ivy", "xml");
463             Artifact artifact = new DefaultArtifact(mrid, new Date JavaDoc(), "myartifact", "mytype", "myext");
464             File JavaDoc src = new File JavaDoc("test/repositories/ivyconf.xml");
465             resolver.publish(ivyArtifact, src, false);
466             resolver.publish(artifact, src, false);
467             
468             assertTrue(new File JavaDoc("test/repositories/1/myorg/mymodule/myrevision/ivy.xml").exists());
469             assertTrue(new File JavaDoc("test/repositories/1/myorg/mymodule/mytypes/myartifact-myrevision.myext").exists());
470         } finally {
471             Delete del = new Delete();
472             del.setProject(new Project());
473             del.setDir(new File JavaDoc("test/repositories/1/myorg"));
474             del.execute();
475         }
476     }
477     
478     public void testListing() throws Exception JavaDoc {
479         FileSystemResolver resolver = new FileSystemResolver();
480         resolver.setName("test");
481         resolver.setIvy(_ivy);
482         assertEquals("test", resolver.getName());
483         
484         resolver.addIvyPattern(IVY_PATTERN);
485         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]");
486
487         OrganisationEntry[] orgs = resolver.listOrganisations();
488         ResolverTestHelper.assertOrganisationEntries(resolver, new String JavaDoc[] {"org1", "org2", "org6", "org9", "orgfailure", "yourorg"}, orgs);
489         
490         OrganisationEntry org = ResolverTestHelper.getEntry(orgs, "org1");
491         ModuleEntry[] mods = resolver.listModules(org);
492         ResolverTestHelper.assertModuleEntries(resolver, org, new String JavaDoc[] {"mod1.1", "mod1.2", "mod1.3", "mod1.4", "mod1.5", "mod1.6"}, mods);
493
494         ModuleEntry mod = ResolverTestHelper.getEntry(mods, "mod1.1");
495         RevisionEntry[] revs = resolver.listRevisions(mod);
496         ResolverTestHelper.assertRevisionEntries(resolver, mod, new String JavaDoc[] {"1.0", "1.0.1", "1.1", "2.0"}, revs);
497
498         mod = ResolverTestHelper.getEntry(mods, "mod1.2");
499         revs = resolver.listRevisions(mod);
500         ResolverTestHelper.assertRevisionEntries(resolver, mod, new String JavaDoc[] {"1.0", "1.1", "2.0", "2.1", "2.2"}, revs);
501     }
502
503     public void testDownloadWithUseOriginIsTrue() throws Exception JavaDoc {
504         FileSystemResolver resolver = new FileSystemResolver();
505         resolver.setName("test");
506         resolver.setIvy(_ivy);
507         assertEquals("test", resolver.getName());
508         
509         resolver.addIvyPattern(IVY_PATTERN);
510         resolver.addArtifactPattern("test/repositories/1/[organisation]/[module]/[type]s/[artifact]-[revision].[type]");
511         
512         ModuleRevisionId mrid = ModuleRevisionId.newInstance("org1", "mod1.1", "1.0");
513         ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), _data);
514         assertNotNull(rmr);
515         
516         assertEquals(mrid, rmr.getId());
517         Date JavaDoc pubdate = new GregorianCalendar JavaDoc(2004, 10, 1, 11, 0, 0).getTime();
518         assertEquals(pubdate, rmr.getPublicationDate());
519         
520         
521         // test to ask to download
522
DefaultArtifact artifact = new DefaultArtifact(mrid, pubdate, "mod1.1", "jar", "jar");
523         DownloadReport report = resolver.download(new Artifact[] {artifact}, _data.getIvy(), _cache, true);
524         assertNotNull(report);
525         
526         assertEquals(1, report.getArtifactsReports().length);
527         
528         ArtifactDownloadReport ar = report.getArtifactReport(artifact);
529         assertNotNull(ar);
530         
531         assertEquals(artifact, ar.getArtifact());
532         assertEquals(DownloadStatus.NO, ar.getDownloadStatus());
533     }
534 }
535
Popular Tags