001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: *
017: */
018: package org.apache.ivy.plugins.report;
019:
020: import java.io.ByteArrayOutputStream;
021: import java.io.File;
022:
023: import junit.framework.TestCase;
024:
025: import org.apache.ivy.Ivy;
026: import org.apache.ivy.core.cache.DefaultResolutionCacheManager;
027: import org.apache.ivy.core.report.ResolveReport;
028: import org.apache.ivy.core.resolve.ResolveOptions;
029: import org.apache.ivy.util.CacheCleaner;
030:
031: public class XmlReportWriterTest extends TestCase {
032: private Ivy _ivy;
033:
034: private File _cache;
035:
036: protected void setUp() throws Exception {
037: _ivy = new Ivy();
038: _ivy.configure(new File("test/repositories/ivysettings.xml"));
039: createCache();
040: }
041:
042: private void createCache() {
043: _cache = new File("build/cache");
044: _cache.mkdirs();
045: }
046:
047: protected void tearDown() throws Exception {
048: cleanCache();
049: }
050:
051: private void cleanCache() {
052: CacheCleaner.deleteDir(_cache);
053: }
054:
055: public void testWriteOrigin() throws Exception {
056: ResolveReport report = _ivy
057: .resolve(
058: new File(
059: "test/repositories/1/org1/mod1.1/ivys/ivy-1.0.xml")
060: .toURL(),
061: getResolveOptions(new String[] { "default" }));
062: assertNotNull(report);
063:
064: ByteArrayOutputStream buffer = new ByteArrayOutputStream();
065: XmlReportWriter writer = new XmlReportWriter();
066: writer.output(report.getConfigurationReport("default"), buffer);
067: buffer.flush();
068: String xml = buffer.toString();
069:
070: String expectedLocation = "location=\""
071: + new File(
072: "test/repositories/1/org1/mod1.2/jars/mod1.2-2.0.jar")
073: .getAbsolutePath() + "\"";
074: String expectedIsLocal = "is-local=\"true\"";
075:
076: assertTrue("XML doesn't contain artifact location attribute",
077: xml.indexOf(expectedLocation) != -1);
078: assertTrue("XML doesn't contain artifact is-local attribute",
079: xml.indexOf(expectedIsLocal) != -1);
080: }
081:
082: public void testEscapeXml() throws Exception {
083: _ivy.configure(new File(
084: "test/repositories/IVY-635/ivysettings.xml"));
085: ResolveReport report = _ivy
086: .resolve(
087: new File(
088: "test/java/org/apache/ivy/plugins/report/ivy-635.xml")
089: .toURL(),
090: getResolveOptions(new String[] { "default" }));
091: assertNotNull(report);
092:
093: ByteArrayOutputStream buffer = new ByteArrayOutputStream();
094: XmlReportWriter writer = new XmlReportWriter();
095: writer.output(report.getConfigurationReport("default"), buffer);
096: buffer.flush();
097: String xml = buffer.toString();
098:
099: String expectedArtName = "art1&_.txt";
100:
101: assertTrue("XML doesn't contain escaped artifact name", xml
102: .indexOf(expectedArtName) != -1);
103: }
104:
105: public void testWriteModuleInfo() throws Exception {
106: ResolveReport report = _ivy
107: .resolve(
108: new File(
109: "test/java/org/apache/ivy/plugins/report/ivy-with-info.xml")
110: .toURL(), getResolveOptions(
111: new String[] { "default" })
112: .setValidate(false));
113: assertNotNull(report);
114:
115: ByteArrayOutputStream buffer = new ByteArrayOutputStream();
116: XmlReportWriter writer = new XmlReportWriter();
117: writer.output(report.getConfigurationReport("default"), buffer);
118: buffer.flush();
119: String xml = buffer.toString();
120:
121: String orgAttribute = "organisation=\"org1\"";
122: String modAttribute = "module=\"mod1\"";
123: String revAttribute = "revision=\"1.0\"";
124: String extra1Attribute = "extra-blabla=\"abc\"";
125: String extra2Attribute = "extra-blabla2=\"123\"";
126:
127: assertTrue("XML doesn't contain organisation attribute", xml
128: .indexOf(orgAttribute) != -1);
129: assertTrue("XML doesn't contain module attribute", xml
130: .indexOf(modAttribute) != -1);
131: assertTrue("XML doesn't contain revision attribute", xml
132: .indexOf(revAttribute) != -1);
133: assertTrue("XML doesn't contain extra attribute 1", xml
134: .indexOf(extra1Attribute) != -1);
135: assertTrue("XML doesn't contain extra attribute 2", xml
136: .indexOf(extra2Attribute) != -1);
137: }
138:
139: private ResolveOptions getResolveOptions(String[] confs) {
140: return new ResolveOptions().setConfs(confs);
141: }
142: }
|