KickJava   Java API By Example, From Geeks To Geeks.

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


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.File JavaDoc;
9
10 import junit.framework.TestCase;
11
12 import org.apache.tools.ant.BuildException;
13 import org.apache.tools.ant.Project;
14 import org.apache.tools.ant.taskdefs.Delete;
15
16 import fr.jayasoft.ivy.Ivy;
17 import fr.jayasoft.ivy.ModuleRevisionId;
18
19 public class IvyResolveTest extends TestCase {
20     private File JavaDoc _cache;
21     private IvyResolve _resolve;
22     
23     protected void setUp() throws Exception JavaDoc {
24         createCache();
25         Project project = new Project();
26         project.setProperty("ivy.conf.file", "test/repositories/ivyconf.xml");
27
28         _resolve = new IvyResolve();
29         _resolve.setProject(project);
30         _resolve.setCache(_cache);
31     }
32
33     private void createCache() {
34         _cache = new File JavaDoc("build/cache");
35         _cache.mkdirs();
36     }
37     
38     protected void tearDown() throws Exception JavaDoc {
39         cleanCache();
40     }
41
42     private void cleanCache() {
43         Delete del = new Delete();
44         del.setProject(new Project());
45         del.setDir(_cache);
46         del.execute();
47     }
48
49     public void testSimple() throws Exception JavaDoc {
50         // depends on org="org1" name="mod1.2" rev="2.0"
51
_resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-simple.xml"));
52         _resolve.execute();
53         
54         assertTrue(getIvy().getResolvedIvyFileInCache(_cache, ModuleRevisionId.newInstance("jayasoft", "resolve-simple", "1.0")).exists());
55         
56         // dependencies
57
assertTrue(getIvy().getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.2", "2.0")).exists());
58         assertTrue(getIvy().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").exists());
59     }
60
61     public void testInline() throws Exception JavaDoc {
62         // same as before, but expressing dependency directly without ivy file
63
_resolve.setOrganisation("org1");
64         _resolve.setModule("mod1.2");
65         _resolve.setRevision("2.0");
66         _resolve.setInline(true);
67         _resolve.execute();
68         
69         // dependencies
70
assertTrue(getIvy().getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.2", "2.0")).exists());
71         assertTrue(getIvy().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").exists());
72     }
73
74     public void testWithSlashes() throws Exception JavaDoc {
75         _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ivy-198.xml"));
76         _resolve.execute();
77         
78         File JavaDoc resolvedIvyFileInCache = getIvy().getResolvedIvyFileInCache(_cache, ModuleRevisionId.newInstance("myorg/mydep", "system/module", "1.0"));
79         assertTrue(resolvedIvyFileInCache.exists());
80         
81         // dependencies
82
assertTrue(getIvy().getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.2", "2.0")).exists());
83         assertTrue(getIvy().getArchiveFileInCache(_cache, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar").exists());
84
85         assertTrue(getIvy().getIvyFileInCache(_cache, ModuleRevisionId.newInstance("yourorg/yourdep", "yoursys/yourmod", "1.0")).exists());
86         assertTrue(getIvy().getArchiveFileInCache(_cache, "yourorg/yourdep", "yoursys/yourmod", "1.0", "yourmod", "jar", "jar").exists());
87     }
88
89     public void testDepsChanged() throws Exception JavaDoc {
90         _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-simple.xml"));
91         _resolve.execute();
92         
93         assertEquals("true", getIvy().getVariable("ivy.deps.changed"));
94
95         _resolve.execute();
96         
97         assertEquals("false", getIvy().getVariable("ivy.deps.changed"));
98     }
99
100     public void testConflictingDepsChanged() throws Exception JavaDoc {
101         _resolve.setFile(new File JavaDoc("test/repositories/2/mod4.1/ivy-4.1.xml"));
102         _resolve.execute();
103         
104         assertEquals("true", getIvy().getVariable("ivy.deps.changed"));
105
106         _resolve.execute();
107         
108         assertEquals("false", getIvy().getVariable("ivy.deps.changed"));
109     }
110
111     public void testDouble() throws Exception JavaDoc {
112         _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-simple.xml"));
113         _resolve.execute();
114         
115         assertEquals("resolve-simple", getIvy().getVariable("ivy.module"));
116
117         _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-double.xml"));
118         _resolve.execute();
119         
120         assertEquals("resolve-double", getIvy().getVariable("ivy.module"));
121     }
122
123     public void testFailure() throws Exception JavaDoc {
124         try {
125             _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-failure.xml"));
126             _resolve.execute();
127             fail("failure didn't raised an exception with default haltonfailure setting");
128         } catch (BuildException ex) {
129             // ok => should raise an exception
130
}
131     }
132
133     public void testFailureOnBadDependencyIvyFile() throws Exception JavaDoc {
134         try {
135             _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-failure2.xml"));
136             _resolve.execute();
137             fail("failure didn't raised an exception with default haltonfailure setting");
138         } catch (BuildException ex) {
139             // ok => should raise an exception
140
}
141     }
142
143     public void testFailureOnBadStatusInDependencyIvyFile() throws Exception JavaDoc {
144         try {
145             _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-failure3.xml"));
146             _resolve.execute();
147             fail("failure didn't raised an exception with default haltonfailure setting");
148         } catch (BuildException ex) {
149             // ok => should raise an exception
150
}
151     }
152
153     public void testHaltOnFailure() throws Exception JavaDoc {
154         try {
155             _resolve.setFile(new File JavaDoc("test/java/fr/jayasoft/ivy/ant/ivy-failure.xml"));
156             _resolve.setHaltonfailure(false);
157             _resolve.execute();
158         } catch (BuildException ex) {
159             ex.printStackTrace();
160             fail("failure raised an exception with haltonfailure set to false");
161         }
162     }
163     
164     private Ivy getIvy() {
165         return _resolve.getIvyInstance();
166     }
167
168     
169 }
170
Popular Tags