1 6 package fr.jayasoft.ivy.ant; 7 8 import java.io.BufferedReader ; 9 import java.io.File ; 10 import java.io.FileReader ; 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 _cache; 26 private IvyDeliver _deliver; 27 private Project _project; 28 29 protected void setUp() throws Exception { 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 ("build/cache"); 44 _cache.mkdirs(); 45 } 46 47 protected void tearDown() throws Exception { 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 ("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 ("test/repositories/1/jayasoft")); 71 del.execute(); 72 } 73 74 public void testSimple() throws Exception { 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 File deliveredIvyFile = new File ("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 { 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 File deliveredIvyFile = new File ("build/test/deliver/ivy-1.2.xml"); 106 assertTrue(deliveredIvyFile.exists()); 107 String deliveredFileContent = FileUtil.readEntirely(new BufferedReader (new FileReader (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 { 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 File deliveredIvyFile = new File ("build/test/deliver/ivy-1.2.xml"); 126 assertTrue(deliveredIvyFile.exists()); 127 String deliveredFileContent = FileUtil.readEntirely(new BufferedReader (new FileReader (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 { 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 File deliveredIvyFile = new File ("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 { 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 File deliveredIvyFile = new File ("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 |