blob: 5b3be7226b7b11081fd84bb9d44bed5f0e837694 [file] [log] [blame]
/***********************************************************************************************************************
* Copyright (c) 2008 empolis GmbH and brox IT Solutions GmbH. All rights reserved. This program and the accompanying
* materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Ivan Churkin (brox IT Solutions GmbH) - initial creator
**********************************************************************************************************************/
package org.apache.xalan.test;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* The Class TransformWithExtensionTest.
*/
public class TransformWithExtensionTest extends TestCase {
/**
* Filename of foo.xsl.
*/
private static final String FOO_XSL_FILE_NAME = "fooExt.xslt";
/**
* The Constant FOO_XSL_FILE_NAME2.
*/
private static final String FOO_XSL_FILE_NAME2 = "fooExt2.xslt";
/**
* Filename of foo.xml.
*/
private static final String FOO_XML_FILE_NAME = "foo.xml";
/**
* Filename of foo.out.
*/
private static final String FOO_OUT_FILE = "fooExt.out";
/**
* The Constant FOO_OUT_FILE2.
*/
private static final String FOO_OUT_FILE2 = "fooExt2.out";
/**
* The _log.
*/
private final Log _log = LogFactory.getLog(getClass());
/**
* Test transform xml document.
*
* @throws Exception
* the exception
*/
@SuppressWarnings("unchecked")
public final void testTransformWithExtension() throws Exception {
final TransformerFactory tFactory = TransformerFactory.newInstance();
assertTrue(tFactory instanceof org.apache.xalan.processor.TransformerFactoryImpl);
final Transformer transformer =
tFactory.newTransformer(new StreamSource(TransformWithExtensionTest.class
.getResourceAsStream(FOO_XSL_FILE_NAME)));
assertTrue(transformer instanceof org.apache.xalan.transformer.TransformerImpl);
// its not required - only for testing that ext class was loaded!
final ClassLoader classLoader = transformer.getClass().getClassLoader();
final Class clazz = classLoader.loadClass("org.apache.xalan.test.ExtensionSample");
assertNotNull(clazz);
final ByteArrayOutputStream fooOutOS = new ByteArrayOutputStream();
final Source source = new StreamSource(TransformWithExtensionTest.class.getResourceAsStream(FOO_XML_FILE_NAME));
final Result result = new StreamResult(fooOutOS);
transformer.transform(source, result);
final String resultStr = fooOutOS.toString();
_log.info("result=" + resultStr);
final InputStream origFooOutIS = TransformWithExtensionTest.class.getResourceAsStream(FOO_OUT_FILE);
final StringBuffer origFooOutContent = new StringBuffer();
final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(origFooOutIS));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
origFooOutContent.append(line);
}
assertEquals(origFooOutContent.toString(), resultStr);
}
/**
* Test transform with extension2.
*
* @throws Exception
* the exception
*/
public final void testTransformWithExtension2() throws Exception {
final TransformerFactory tFactory = TransformerFactory.newInstance();
assertTrue(tFactory instanceof org.apache.xalan.processor.TransformerFactoryImpl);
final Transformer transformer =
tFactory.newTransformer(new StreamSource(TransformWithExtensionTest.class
.getResourceAsStream(FOO_XSL_FILE_NAME2)));
assertTrue(transformer instanceof org.apache.xalan.transformer.TransformerImpl);
// its not required - only for testing that ext class was loaded!
// final ClassLoader classLoader = transformer.getClass().getClassLoader();
// final Class clazz = classLoader.loadClass("org.apache.xalan.test.ExtensionSample");
// assertNotNull(clazz);
final ByteArrayOutputStream fooOutOS = new ByteArrayOutputStream();
final Source source = new StreamSource(TransformWithExtensionTest.class.getResourceAsStream(FOO_XML_FILE_NAME));
final Result result = new StreamResult(fooOutOS);
transformer.transform(source, result);
final String resultStr = fooOutOS.toString();
_log.info("result=" + resultStr);
final InputStream origFooOutIS = TransformWithExtensionTest.class.getResourceAsStream(FOO_OUT_FILE2);
final StringBuffer origFooOutContent = new StringBuffer();
final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(origFooOutIS));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
origFooOutContent.append(line);
}
assertEquals(origFooOutContent.toString(), resultStr);
}
}