/*
- * Copyright 2005 the original author or authors.
- *
+ * Copyright 2005-2010 the original author or authors.
+ *
* Licensed 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.wamblee.xml;
-import junit.framework.TestCase;
-
-import org.w3c.dom.Document;
-
-import org.wamblee.io.ClassPathResource;
-import org.wamblee.io.FileSystemUtils;
-import org.wamblee.io.InputResource;
-
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+import junit.framework.TestCase;
+
+import org.w3c.dom.Document;
+import org.wamblee.io.ClassPathResource;
+import org.wamblee.io.FileSystemUtils;
+import org.wamblee.io.InputResource;
/**
* Tests the XSL transformer.
- *
+ *
* @author Erik Brakkee
*/
public class XslTransformerTest extends TestCase {
private String getResourcePath(String aResource) {
return getClass().getPackage().getName().replaceAll("\\.", "/") + "/" +
- aResource;
+ aResource;
}
/**
* Transforms a file while using the default resolver, where the included
* file can be found. Verifies the transformation is done correctly.
- *
+ *
*/
public void testTransformUsingDefaultResolver() throws Exception {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_XSLT)).getInputStream());
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_XSLT)).getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
- .newDocumentBuilder();
+ .newDocumentBuilder();
Document document = builder.parse(xmlResource.getInputStream());
Source documentSource = new StreamSource(xmlResource.getInputStream());
- Document expected = DomUtils.read(new ClassPathResource(getResourcePath(
- "output-reportToHtml-report.xml")).getInputStream());
+ Document expected = DomUtils
+ .read(new ClassPathResource(
+ getResourcePath("output-reportToHtml-report.xml"))
+ .getInputStream());
Document output1 = transformer.transform(documentData, xslt);
XmlUtils.assertEquals("byte[] transform", expected, output1);
- xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_XSLT)).getInputStream());
+ xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_XSLT)).getInputStream());
Document output2 = transformer.transform(document, xslt);
XmlUtils.assertEquals("document transform", expected, output2);
ByteArrayOutputStream os = new ByteArrayOutputStream();
Result output = new StreamResult(os);
- xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_XSLT)).getInputStream());
+ xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_XSLT)).getInputStream());
transformer.transform(documentSource, output, xslt);
- XmlUtils.assertEquals("document source transform", expected,
- DomUtils.read(os.toString()));
+ XmlUtils.assertEquals("document source transform", expected, DomUtils
+ .read(os.toString()));
- xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_XSLT)).getInputStream());
+ xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_XSLT)).getInputStream());
String result = transformer.textTransform(documentData, xslt);
- XmlUtils.assertEquals("text transform", expected, DomUtils.read(result));
+ XmlUtils
+ .assertEquals("text transform", expected, DomUtils.read(result));
}
/**
* Transforms a file using the default resolver where the included file
* cannot be found. Verifies that a TransformerException is thrown.
- *
+ *
*/
- public void testTransformUsingDefaultResolverFails()
- throws IOException {
+ public void testTransformUsingDefaultResolverFails() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML2_XSLT)).getInputStream());
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML2_XSLT)).getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
try {
- Document output1 = transformer.transform(documentData, xslt);
+ transformer.transform(documentData, xslt);
} catch (TransformerException e) {
return; // ok
}
/**
* Transforms a file using an invalid Xslt. Verifies that a
* TransformerException is thrown.
- *
+ *
*/
public void testTransformInvalidXslt() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_INVALID_XSLT)).getInputStream());
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_INVALID_XSLT)).getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
try {
- Document output1 = transformer.transform(documentData, xslt);
+ transformer.transform(documentData, xslt);
} catch (TransformerException e) {
return; // ok
}
/**
* Transforms a file using a non-well formed xslt. Verifies that a
* TransformerException is thrown.
- *
+ *
*/
public void testTransformNonWellformedXslt() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML_NONWELLFORMED_XSLT)).getInputStream());
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML_NONWELLFORMED_XSLT))
+ .getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
try {
- Document output1 = transformer.transform(documentData, xslt);
+ transformer.transform(documentData, xslt);
} catch (TransformerException e) {
return; // ok
}
/**
* Transforms a file using a class path resolver.
- *
+ *
*/
public void testTransformUsingClassPathResolver() throws Exception {
- XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
+ XslTransformer transformer = new XslTransformer(
+ new ClasspathUriResolver());
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_HTML2_XSLT)).getInputStream());
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_HTML2_XSLT)).getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
Document output1 = transformer.transform(documentData, xslt);
- Document expected = DomUtils.read(new ClassPathResource(getResourcePath(
- "output-reportToHtml-report.xml")).getInputStream());
+ Document expected = DomUtils
+ .read(new ClassPathResource(
+ getResourcePath("output-reportToHtml-report.xml"))
+ .getInputStream());
XmlUtils.assertEquals("doc", expected, output1);
}
/**
* Transforms a file to text output. Verifies the file is transformed
* correctly.
- *
+ *
*/
public void testTransformToTextOutput() throws Exception {
- XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
+ XslTransformer transformer = new XslTransformer(
+ new ClasspathUriResolver());
- InputResource xmlResource = new ClassPathResource(getResourcePath(
- REPORT_XML));
- Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
- REPORT_TO_TEXT_XSLT)).getInputStream());
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
+ Source xslt = new StreamSource(new ClassPathResource(
+ getResourcePath(REPORT_TO_TEXT_XSLT)).getInputStream());
- byte[] documentData = FileSystemUtils.read(xmlResource.getInputStream())
- .getBytes();
+ byte[] documentData = FileSystemUtils
+ .read(xmlResource.getInputStream()).getBytes();
String result = transformer.textTransform(documentData, xslt);
String expected = "Hello world!";
}
/**
- * Tests resolving a file using {@link XslTransformer#resolve(String)} with the
- * default resolver where the file does not exist.
- *
+ * Tests resolving a file using {@link XslTransformer#resolve(String)} with
+ * the default resolver where the file does not exist.
+ *
*/
public void testResolveWithDefaultResolverFileNotFound() {
XslTransformer transformer = new XslTransformer();
try {
- Source source = transformer.resolve(
- "org/wamblee/xml/utilities-nonexistent.xsl");
+ transformer
+ .resolve("org/wamblee/xml/utilities-nonexistent.xsl");
} catch (TransformerException e) {
return; // ok
}
}
/**
- * Tests resolving a file using {@link XslTransformer#resolve(String)} with the
- * default resolver.
- *
+ * Tests resolving a file using {@link XslTransformer#resolve(String)} with
+ * the default resolver.
+ *
*/
public void testResolveWithClasspathResolver() throws Exception {
- XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
+ XslTransformer transformer = new XslTransformer(
+ new ClasspathUriResolver());
Source source = transformer.resolve(getResourcePath(INCLUDED_XSL_FILE));
assert (source instanceof StreamSource);
StreamSource ssource = (StreamSource) source;
String data = FileSystemUtils.read(ssource.getInputStream());
String expected = FileSystemUtils.read(new ClassPathResource(
- getResourcePath(INCLUDED_XSL_FILE)).getInputStream());
+ getResourcePath(INCLUDED_XSL_FILE)).getInputStream());
assertEquals(expected, data);
}
}