From 49ddd733e6c07852b83b381ebd621ad41dd8c09f Mon Sep 17 00:00:00 2001 From: Xavier Hanin Date: Thu, 20 Jul 2006 21:02:40 +0000 Subject: [PATCH] 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 --- src/java/fr/jayasoft/ivy/IvyNode.java | 26 +++++++++---------- test/java/fr/jayasoft/ivy/ResolveTest.java | 15 +++++++++++ .../1/org1/mod1.4/ivys/ivy-2.0.xml | 12 +++++++++ .../1/org1/mod1.5/ivys/ivy-1.0.2.xml | 13 ++++++++++ 4 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 test/repositories/1/org1/mod1.4/ivys/ivy-2.0.xml create mode 100644 test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml diff --git a/src/java/fr/jayasoft/ivy/IvyNode.java b/src/java/fr/jayasoft/ivy/IvyNode.java index 9afdc321..617183ee 100644 --- a/src/java/fr/jayasoft/ivy/IvyNode.java +++ b/src/java/fr/jayasoft/ivy/IvyNode.java @@ -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) { diff --git a/test/java/fr/jayasoft/ivy/ResolveTest.java b/test/java/fr/jayasoft/ivy/ResolveTest.java index 38890951..ec9c3dca 100644 --- a/test/java/fr/jayasoft/ivy/ResolveTest.java +++ b/test/java/fr/jayasoft/ivy/ResolveTest.java @@ -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[ diff --git a/test/repositories/1/org1/mod1.4/ivys/ivy-2.0.xml b/test/repositories/1/org1/mod1.4/ivys/ivy-2.0.xml new file mode 100644 index 00000000..61843b8d --- /dev/null +++ b/test/repositories/1/org1/mod1.4/ivys/ivy-2.0.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml b/test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml new file mode 100644 index 00000000..61b48b86 --- /dev/null +++ b/test/repositories/1/org1/mod1.5/ivys/ivy-1.0.2.xml @@ -0,0 +1,13 @@ + + + + + + + +