add a junit test for a failing latest case (due to recent changes), and fix the bug

git-svn-id: https://svn.apache.org/repos/asf/incubator/ivy/trunk@484397 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Xavier Hanin 2006-07-20 21:02:40 +00:00
parent 58949509da
commit 49ddd733e6
4 changed files with 52 additions and 14 deletions

View File

@ -208,7 +208,6 @@ public class IvyNode {
private String _rootModuleConf;
private Map _selectedDeps = new HashMap(); // Map (ModuleIdConf -> Set(Node)) // map indicating for each dependency which node has been selected
private Map _selectedRevs = new HashMap(); // Map (ModuleIdConf -> Set(ModuleRevisionId)) // map indicating for each dependency which revision has been selected
private Map _evictedDeps = new HashMap(); // Map (ModuleIdConf -> Set(Node)) // map indicating for each dependency which node has been evicted
private Map _evictedRevs = new HashMap(); // Map (ModuleIdConf -> Set(ModuleRevisionId)) // map indicating for each dependency which revision has been evicted
@ -308,24 +307,23 @@ public class IvyNode {
return ret;
}
public Collection getResolvedRevisions(ModuleId mid, String rootModuleConf) {
Collection resolved = (Collection)_selectedRevs.get(new ModuleIdConf(mid, rootModuleConf));
if (resolved == null) {
return new HashSet();
} else {
return new HashSet(resolved);
}
Collection resolved = (Collection)_selectedDeps.get(new ModuleIdConf(mid, rootModuleConf));
if (resolved == null) {
return new HashSet();
} else {
Collection resolvedRevs = new HashSet();
for (Iterator iter = resolved.iterator(); iter.hasNext();) {
IvyNode node = (IvyNode)iter.next();
resolvedRevs.add(node.getId());
resolvedRevs.add(node.getResolvedId());
}
return resolvedRevs;
}
}
public void setResolvedNodes(ModuleId moduleId, String rootModuleConf, Collection resolved) {
ModuleIdConf moduleIdConf = new ModuleIdConf(moduleId, rootModuleConf);
_selectedDeps.put(moduleIdConf, new HashSet(resolved));
Collection resolvedRevs = new HashSet();
for (Iterator iter = resolved.iterator(); iter.hasNext();) {
IvyNode node = (IvyNode)iter.next();
resolvedRevs.add(node.getId());
resolvedRevs.add(node.getResolvedId());
}
_selectedRevs.put(moduleIdConf, resolvedRevs);
}
public Collection getEvictedNodes(ModuleId mid, String rootModuleConf) {

View File

@ -1605,6 +1605,21 @@ public class ResolveTest extends TestCase {
assertTrue(ivy.getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
}
public void testLatestMultiple() throws Exception {
// mod1.5 depends on
// latest mod1.4, which depends on mod1.2 2.2
// latest mod1.2 (which is 2.2)
ResolveReport report = _ivy.resolve(new File("test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml").toURL(),
null, new String[] {"default"}, _cache, null, true);
assertFalse(report.hasError());
// dependencies
assertTrue(_ivy.getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.4", "2.0")).exists());
assertTrue(_ivy.getIvyFileInCache(_cache, ModuleRevisionId.newInstance("org1", "mod1.2", "2.2")).exists());
assertTrue(_ivy.getArchiveFileInCache(_cache, "org1", "mod1.2", "2.2", "mod1.2", "jar", "jar").exists());
}
public void testVersionRange1() throws Exception {
// mod 1.4 depends on mod1.2 [1.0,2.0[

View File

@ -0,0 +1,12 @@
<ivy-module version="1.0">
<info organisation="org1"
module="mod1.4"
revision="2.0"
status="integration"
publication="20060701120000"
/>
<publications/>
<dependencies>
<dependency name="mod1.2" rev="2.2"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,13 @@
<ivy-module version="1.0">
<info organisation="org1"
module="mod1.5"
revision="1.0.2"
status="integration"
publication="20060701120000"
/>
<publications/>
<dependencies>
<dependency name="mod1.4" rev="latest.integration"/>
<dependency name="mod1.2" rev="latest.integration"/>
</dependencies>
</ivy-module>