import javax.xml.transform.stream.StreamSource;
import junit.framework.TestCase;
-
-import org.springframework.core.io.ClassPathResource;
-import org.w3c.dom.Document;
+import org.wamblee.io.ClassPathResource;
import org.wamblee.io.FileSystemUtils;
import org.wamblee.io.InputResource;
-import org.wamblee.io.TestResource;
+
+import org.w3c.dom.Document;
/**
* Tests the XSL transformer.
*/
public class XslTransformerTest extends TestCase {
- private static final String REPORT_XML = "report.xml";
+ private static final String INCLUDED_XSL_FILE = "utilities.xsl";
+
+ private static final String REPORT_XML = "report.xml";
private static final String REPORT_TO_HTML_XSLT = "reportToHtml.xsl";
private static final String REPORT_TO_TEXT_XSLT = "reportToText.xsl";
+ private String getResourcePath(String aResource) {
+ return getClass().getPackage().getName().replaceAll("\\.", "/") + "/" + aResource;
+ }
/**
* Transforms a file while using the default resolver, where the included
public void testTransformUsingDefaultResolver() throws Exception {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
- Source xslt = new StreamSource(
- new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_HTML_XSLT));
+ InputResource xmlResource = new ClassPathResource(getResourcePath(REPORT_XML));
+
+ Source xslt = new StreamSource(new ClassPathResource(getResourcePath(
+ REPORT_TO_HTML_XSLT)).getInputStream());
byte[] documentData = FileSystemUtils
.read(xmlResource.getInputStream()).getBytes();
Document document = builder.parse(xmlResource.getInputStream());
Source documentSource = new StreamSource(xmlResource.getInputStream());
- Document expected = DomUtils.read(new TestResource(
- XslTransformerTest.class, "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());
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());
transformer.transform(documentSource, output, xslt);
XmlUtils.assertEquals("document source transform", expected, DomUtils
.read(os.toString()));
+ 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));
public void testTransformUsingDefaultResolverFails() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
- Source xslt = new StreamSource(new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_HTML2_XSLT));
+ 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();
public void testTransformInvalidXslt() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
- Source xslt = new StreamSource(new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_HTML_INVALID_XSLT));
+ 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();
public void testTransformNonWellformedXslt() throws IOException {
XslTransformer transformer = new XslTransformer();
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
- Source xslt = new StreamSource(new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_HTML_NONWELLFORMED_XSLT));
+ 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();
public void testTransformUsingClassPathResolver() throws Exception {
XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
- Source xslt = new StreamSource(new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_HTML2_XSLT));
+ 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();
Document output1 = transformer.transform(documentData, xslt);
- Document expected = DomUtils.read(new TestResource(
- XslTransformerTest.class, "output-reportToHtml-report.xml")
+ Document expected = DomUtils.read(new ClassPathResource(
+ getResourcePath("output-reportToHtml-report.xml"))
.getInputStream());
XmlUtils.assertEquals("doc", expected, output1);
}
public void testTransformToTextOutput() throws Exception {
XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
- InputResource xmlResource = new TestResource(XslTransformerTest.class,
- REPORT_XML);
+ InputResource xmlResource = new ClassPathResource(
+ getResourcePath(REPORT_XML));
Source xslt = new StreamSource(
- new File(FileSystemUtils
- .getTestInputDir(XslTransformerTest.class),
- REPORT_TO_TEXT_XSLT));
+ new ClassPathResource(getResourcePath(REPORT_TO_TEXT_XSLT)).getInputStream());
byte[] documentData = FileSystemUtils
.read(xmlResource.getInputStream()).getBytes();
String expected = "Hello world!";
assertEquals("text transform", expected, result);
}
-
- /**
- * Tests resolving a file using {@link XslTransformer#resolve(String)}.
- *
- */
- public void testResolveWithDefaultResolver() throws Exception {
- XslTransformer transformer = new XslTransformer();
- File utilities = new File(FileSystemUtils.getTestInputDir(XslTransformerTest.class), "utilities.xsl");
- Source source = transformer.resolve(utilities.getAbsolutePath());
- assert(source instanceof StreamSource);
- StreamSource ssource = (StreamSource)source;
- String data = FileSystemUtils.read(ssource.getInputStream());
- String expected = FileSystemUtils.read(new ClassPathResource("org/wamblee/xml/utilities.xsl").getInputStream());
- assertEquals(expected, data);
- }
/**
* Tests resolving a file using {@link XslTransformer#resolve(String)} with the
*/
public void testResolveWithClasspathResolver() throws Exception {
XslTransformer transformer = new XslTransformer(new ClasspathUriResolver());
- Source source = transformer.resolve("org/wamblee/xml/utilities.xsl");
+ 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("org/wamblee/xml/utilities.xsl").getInputStream());
+ String expected = FileSystemUtils.read(new ClassPathResource(getResourcePath(INCLUDED_XSL_FILE)).getInputStream());
assertEquals(expected, data);
}
}
-
\ No newline at end of file
+