KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > jayasoft > ivy > ant > IvyDeliverTest


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.ant;
7
8 import java.io.BufferedReader JavaDoc;
9 import java.io.File JavaDoc;
10 import java.io.FileReader JavaDoc;
11
12 import junit.framework.TestCase;
13
14 import org.apache.tools.ant.Project;
15 import org.apache.tools.ant.taskdefs.Delete;
16
17 import fr.jayasoft.ivy.DependencyDescriptor;
18 import fr.jayasoft.ivy.Ivy;
19 import fr.jayasoft.ivy.ModuleDescriptor;
20 import fr.jayasoft.ivy.ModuleRevisionId;
21 import fr.jayasoft.ivy.util.FileUtil;
22 import fr.jayasoft.ivy.xml.XmlModuleDescriptorParser;
23
24 public class IvyDeliverTest extends TestCase {
25     private File JavaDoc _cache;
26     private IvyDeliver _deliver;
27     private Project _project;
28     
29     protected void setUp() throws Exception JavaDoc {
30         cleanTestDir();
31         cleanRep();
32         createCache();
33         _project = new Project();
34         _project.setProperty("ivy.conf.file", "test/repositories/ivyconf.xml");
35         _project.setProperty("build", "build/test/deliver");
36
37         _deliver = new IvyDeliver();
38         _deliver.setProject(_project);
39         _deliver.setCache(_cache);
40     }
41
42     private void createCache() {
43         _cache = new File JavaDoc("build/cache");
44         _cache.mkdirs();
45     }
46     
47     protected void tearDown() throws Exception JavaDoc {
48         cleanCache();
49         cleanTestDir();
50         cleanRep();
51     }
52
53     private void cleanCache() {
54         Delete del = new Delete();
55         del.setProject(new Project());
56         del.setDir(_cache);
57         del.execute();
58     }
59
60     private void cleanTestDir() {
61         Delete del = new Delete();
62         del.setProject(new Project());
63         del.setDir(new File JavaDoc("build/test/deliver"));
64         del.execute();
65     }
66
67     private void cleanRep() {
68         Delete del = new Delete();
69         del.setProject(new Project());
70         del.setDir(new File JavaDoc("test/repositories/1/jayasoft"));
71         del.execute();
72     }
73
74     public void testSimple() throws Exception JavaDoc {
75         _project.setProperty("ivy.dep.file", "test/java/fr/jayasoft/ivy/ant/ivy-latest.xml");
76         IvyResolve res = new IvyResolve();
77         res.setProject(_project);
78         res.execute();
79         
80         _deliver.setPubrevision("1.2");
81         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
82         _deliver.execute();
83         
84         // should have done the ivy delivering
85
File JavaDoc deliveredIvyFile = new File JavaDoc("build/test/deliver/ivy-1.2.xml");
86         assertTrue(deliveredIvyFile.exists());
87         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
88         assertEquals(ModuleRevisionId.newInstance("jayasoft", "resolve-latest", "1.2"), md.getModuleRevisionId());
89         DependencyDescriptor[] dds = md.getDependencies();
90         assertEquals(1, dds.length);
91         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.2", "2.2"), dds[0].getDependencyRevisionId());
92     }
93
94     public void testReplaceImportedConfigurations() throws Exception JavaDoc {
95         _project.setProperty("ivy.dep.file", "test/java/fr/jayasoft/ivy/ant/ivy-import-confs.xml");
96         IvyResolve res = new IvyResolve();
97         res.setProject(_project);
98         res.execute();
99         
100         _deliver.setPubrevision("1.2");
101         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
102         _deliver.execute();
103         
104         // should have done the ivy delivering
105
File JavaDoc deliveredIvyFile = new File JavaDoc("build/test/deliver/ivy-1.2.xml");
106         assertTrue(deliveredIvyFile.exists());
107         String JavaDoc deliveredFileContent = FileUtil.readEntirely(new BufferedReader JavaDoc(new FileReader JavaDoc(deliveredIvyFile)));
108         assertTrue("import not replaced: import can still be found in file", deliveredFileContent.indexOf("import") == -1);
109         assertTrue("import not replaced: conf1 cannot be found in file", deliveredFileContent.indexOf("conf1") != -1);
110     }
111
112     public void testReplaceVariables() throws Exception JavaDoc {
113         _project.setProperty("ivy.dep.file", "test/java/fr/jayasoft/ivy/ant/ivy-with-variables.xml");
114         IvyResolve res = new IvyResolve();
115         res.setProject(_project);
116         res.execute();
117         
118         res.getIvyInstance().setVariable("myvar", "myvalue");
119         
120         _deliver.setPubrevision("1.2");
121         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
122         _deliver.execute();
123         
124         // should have done the ivy delivering
125
File JavaDoc deliveredIvyFile = new File JavaDoc("build/test/deliver/ivy-1.2.xml");
126         assertTrue(deliveredIvyFile.exists());
127         String JavaDoc deliveredFileContent = FileUtil.readEntirely(new BufferedReader JavaDoc(new FileReader JavaDoc(deliveredIvyFile)));
128         assertTrue("variable not replaced: myvar can still be found in file", deliveredFileContent.indexOf("myvar") == -1);
129         assertTrue("variable not replaced: myvalue cannot be found in file", deliveredFileContent.indexOf("myvalue") != -1);
130     }
131
132     public void testNoReplaceDynamicRev() throws Exception JavaDoc {
133         _project.setProperty("ivy.dep.file", "test/java/fr/jayasoft/ivy/ant/ivy-latest.xml");
134         IvyResolve res = new IvyResolve();
135         res.setProject(_project);
136         res.execute();
137         
138         _deliver.setPubrevision("1.2");
139         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
140         _deliver.setReplacedynamicrev(false);
141         _deliver.execute();
142         
143         // should have done the ivy delivering
144
File JavaDoc deliveredIvyFile = new File JavaDoc("build/test/deliver/ivy-1.2.xml");
145         assertTrue(deliveredIvyFile.exists());
146         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
147         assertEquals(ModuleRevisionId.newInstance("jayasoft", "resolve-latest", "1.2"), md.getModuleRevisionId());
148         DependencyDescriptor[] dds = md.getDependencies();
149         assertEquals(1, dds.length);
150         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.2", "latest.integration"), dds[0].getDependencyRevisionId());
151     }
152
153     public void testDifferentRevisionsForSameModule() throws Exception JavaDoc {
154         _project.setProperty("ivy.dep.file", "test/java/fr/jayasoft/ivy/ant/ivy-different-revisions.xml");
155         IvyResolve res = new IvyResolve();
156         res.setProject(_project);
157         res.execute();
158         
159         _deliver.setPubrevision("1.2");
160         _deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml");
161         _deliver.execute();
162         
163         // should have done the ivy delivering
164
File JavaDoc deliveredIvyFile = new File JavaDoc("build/test/deliver/ivy-1.2.xml");
165         assertTrue(deliveredIvyFile.exists());
166         ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(new Ivy(), deliveredIvyFile.toURL(), true);
167         assertEquals(ModuleRevisionId.newInstance("jayasoft", "different-revs", "1.2"), md.getModuleRevisionId());
168         DependencyDescriptor[] dds = md.getDependencies();
169         assertEquals(3, dds.length);
170         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.2", "2.0"), dds[0].getDependencyRevisionId());
171         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.1", "1.0"), dds[1].getDependencyRevisionId());
172         assertEquals(ModuleRevisionId.newInstance("org1", "mod1.2", "1.1"), dds[2].getDependencyRevisionId());
173     }
174 }
175
Popular Tags