| /* |
| * 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.ant; |
| |
| import java.io.File; |
| import java.util.Locale; |
| |
| import org.apache.ivy.TestHelper; |
| import org.apache.ivy.util.FileUtil; |
| import org.apache.tools.ant.Project; |
| |
| import junit.framework.TestCase; |
| |
| public class IvyReportTest extends TestCase { |
| |
| private IvyReport report; |
| |
| private Project project; |
| |
| protected void setUp() throws Exception { |
| TestHelper.createCache(); |
| project = TestHelper.newProject(); |
| project.setProperty("ivy.settings.file", "test/repositories/ivysettings.xml"); |
| |
| report = new IvyReport(); |
| report.setTaskName("report"); |
| report.setProject(project); |
| System.setProperty("ivy.cache.dir", TestHelper.cache.getAbsolutePath()); |
| } |
| |
| protected void tearDown() throws Exception { |
| TestHelper.cleanCache(); |
| } |
| |
| public void testSimple() throws Exception { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.setFile(new File("test/java/org/apache/ivy/ant/ivy-simple.xml")); |
| res.execute(); |
| |
| report.setTodir(new File(TestHelper.cache, "report")); |
| report.execute(); |
| |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-default.html").exists()); |
| assertTrue(new File(TestHelper.cache, "report/ivy-report.css").exists()); // IVY-826 |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-default.graphml").exists()); |
| } finally { |
| Locale.setDefault(oldLocale); |
| } |
| } |
| |
| public void testWithLatest() throws Exception { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.setFile(new File("test/repositories/1/org6/mod6.2/ivys/ivy-0.7.xml")); |
| res.execute(); |
| |
| report.setTodir(new File(TestHelper.cache, "report")); |
| report.setXml(true); |
| report.execute(); |
| |
| File xmlReport = new File(TestHelper.cache, "report/org6-mod6.2-default.xml"); |
| assertTrue(xmlReport.exists()); |
| // check that revision 2.2 of mod1.2 is only present once |
| String reportContent = FileUtil.readEntirely(xmlReport); |
| int index = reportContent.indexOf("<revision name=\"2.2\""); |
| assertTrue(index != -1); |
| index = reportContent.indexOf("<revision name=\"2.2\"", index + 1); |
| assertTrue(index == -1); |
| } finally { |
| Locale.setDefault(oldLocale); |
| } |
| } |
| |
| public void testCopyCssIfTodirNotSet() { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.setFile(new File("test/java/org/apache/ivy/ant/ivy-simple.xml")); |
| res.execute(); |
| |
| report.setGraph(false); |
| report.execute(); |
| |
| assertTrue(new File("apache-resolve-simple-default.html").exists()); |
| assertTrue(new File("ivy-report.css").exists()); // IVY-826 |
| } finally { |
| Locale.setDefault(oldLocale); |
| new File("apache-resolve-simple-default.html").delete(); |
| new File("ivy-report.css").delete(); |
| } |
| } |
| |
| public void testNoRevisionInOutputPattern() throws Exception { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.setFile(new File("test/java/org/apache/ivy/ant/ivy-simple.xml")); |
| res.execute(); |
| |
| report.setTodir(new File(TestHelper.cache, "report")); |
| report.setOutputpattern("[organisation]-[module]-[revision].[ext]"); |
| report.setConf("default"); |
| report.execute(); |
| |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-1.0.html").exists()); |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-1.0.graphml").exists()); |
| } finally { |
| Locale.setDefault(oldLocale); |
| } |
| } |
| |
| public void testMultipleConfigurations() throws Exception { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.setFile(new File("test/java/org/apache/ivy/ant/ivy-multiconf.xml")); |
| res.execute(); |
| |
| report.setTodir(new File(TestHelper.cache, "report")); |
| report.execute(); |
| |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-default.html").exists()); |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-default.graphml").exists()); |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-compile.html").exists()); |
| assertTrue(new File(TestHelper.cache, "report/apache-resolve-simple-compile.graphml").exists()); |
| } finally { |
| Locale.setDefault(oldLocale); |
| } |
| } |
| |
| public void testRegularCircular() throws Exception { |
| Locale oldLocale = Locale.getDefault(); |
| |
| try { |
| // set the locale to UK as workaround for SUN bug 6240963 |
| Locale.setDefault(Locale.UK); |
| |
| project.setProperty("ivy.dep.file", "test/repositories/2/mod11.1/ivy-1.0.xml"); |
| IvyResolve res = new IvyResolve(); |
| res.setProject(project); |
| res.execute(); |
| |
| report.setTodir(new File(TestHelper.cache, "report")); |
| report.setXml(true); |
| |
| report.execute(); |
| |
| assertTrue(new File(TestHelper.cache, "report/org11-mod11.1-compile.xml").exists()); |
| assertTrue(new File(TestHelper.cache, "report/org11-mod11.1-compile.html").exists()); |
| } finally { |
| Locale.setDefault(oldLocale); |
| } |
| } |
| } |