Java tutorial
/*********************************************************************************************************************** * 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); } }