/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package org.apache.ivy.core.deliver; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.net.URI; import org.apache.ivy.TestHelper; import org.apache.ivy.ant.IvyDeliver; import org.apache.ivy.ant.IvyResolve; import org.apache.ivy.util.FileUtil; import org.apache.tools.ant.Project; import junit.framework.TestCase; public class DeliverTest extends TestCase { private File cache; private File deliverDir; private IvyDeliver ivyDeliver; protected void setUp() throws Exception { cache = new File("build/cache"); System.setProperty("ivy.cache.dir", cache.getAbsolutePath()); createCache(); deliverDir = new File("build/test/deliver"); deliverDir.mkdirs(); Project project = TestHelper.newProject(); project.init(); ivyDeliver = new IvyDeliver(); ivyDeliver.setProject(project); ivyDeliver.setDeliverpattern(deliverDir.getAbsolutePath() + "/[type]s/[artifact]-[revision](-[classifier]).[ext]"); } protected void tearDown() throws Exception { FileUtil.forceDelete(cache); FileUtil.forceDelete(deliverDir); } private void createCache() { cache.mkdirs(); } public void testIVY1111() throws Exception { Project project = ivyDeliver.getProject(); project.setProperty("ivy.settings.file", "test/repositories/IVY-1111/ivysettings.xml"); File ivyFile = new File(new URI(DeliverTest.class.getResource("ivy-1111.xml").toString())); resolve(ivyFile); ivyDeliver.setReplacedynamicrev(true); ivyDeliver.doExecute(); String deliverContent = readFile(deliverDir.getAbsolutePath() + "/ivys/ivy-1.0.xml"); assertTrue(deliverContent.indexOf("rev=\"latest.integration\"") == -1); assertTrue(deliverContent.indexOf("name=\"b\" rev=\"1.5\"") >= 0); } private void resolve(File ivyFile) { IvyResolve ivyResolve = new IvyResolve(); ivyResolve.setProject(ivyDeliver.getProject()); ivyResolve.setFile(ivyFile); ivyResolve.doExecute(); } private String readFile(String fileName) throws IOException { StringBuffer retval = new StringBuffer(); File ivyFile = new File(fileName); BufferedReader reader = new BufferedReader(new FileReader(ivyFile)); String line = null; while ((line = reader.readLine()) != null) { retval.append(line + "\n"); } reader.close(); return retval.toString(); } }