Index: test/java/org/apache/ivy/ant/IvyDeliverTest.java =================================================================== --- test/java/org/apache/ivy/ant/IvyDeliverTest.java (revision 1340120) +++ test/java/org/apache/ivy/ant/IvyDeliverTest.java (working copy) @@ -23,7 +23,9 @@ import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; +import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import junit.framework.TestCase; @@ -46,6 +48,7 @@ protected void setUp() throws Exception { cleanTestDir(); + cleanRetrieveDir(); cleanRep(); createCache(); project = new Project(); @@ -66,6 +69,7 @@ protected void tearDown() throws Exception { cleanCache(); cleanTestDir(); + cleanRetrieveDir(); cleanRep(); } @@ -83,6 +87,13 @@ del.execute(); } + private void cleanRetrieveDir() { + Delete del = new Delete(); + del.setProject(new Project()); + del.setDir(new File("build/test/retrieve")); + del.execute(); + } + private void cleanRep() { Delete del = new Delete(); del.setProject(new Project()); @@ -425,6 +436,107 @@ dds[1].getDependencyRevisionId()); } + public void testWithDynEvictedAndConsistencyChecking() throws Exception { + project.setProperty("ivy.dep.file", "test/java/org/apache/ivy/ant/ivy-dyn-evicted.xml"); + IvyResolve res = new IvyResolve(); + res.setValidate(false); + res.setProject(project); + res.execute(); + + deliver.setPubrevision("1.2"); + deliver.setDeliverpattern("build/test/deliver/ivy-[revision].xml"); + deliver.setValidate(false); + deliver.execute(); + + // should have done the ivy delivering + File deliveredIvyFile = new File("build/test/deliver/ivy-1.2.xml"); + assertTrue(deliveredIvyFile.exists()); + ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor( + new IvySettings(), deliveredIvyFile.toURL(), false); + assertEquals(ModuleRevisionId.newInstance("apache", "resolve-latest", "1.2"), + md.getModuleRevisionId()); + DependencyDescriptor[] dds = md.getDependencies(); + assertEquals(2, dds.length); + assertEquals(ModuleRevisionId.newInstance("org1", "mod1.2", "1.1"), + dds[0].getDependencyRevisionId()); + + IvyRetrieve ret = new IvyRetrieve(); + ret.setProject(project); + ret.setPattern("build/test/retrieve/[artifact]-[revision].[ext]"); + ret.execute(); + + File list = new File("build/test/retrieve"); + String[] files = list.list(); + HashSet actualFileSet = new HashSet(Arrays.asList(files)); + HashSet expectedFileSet = new HashSet(); + for (int i=0; i