< prev index next >
test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java
Print this page
*** 24,37 ****
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
--- 24,33 ----
*** 39,98 ****
import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
- import static jaxp.library.JAXPTestUtilities.failCleanup;
- import static jaxp.library.JAXPTestUtilities.failUnexpected;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
- import org.w3c.dom.Document;
import org.xml.sax.SAXException;
/**
* Here a transformer is created using DOMSource. Some specific output property
* is set on transformer. Then transform(StreamSource, StreamResult) is tested.
*/
! public class TransformerTest02 {
/**
* Unit test for transform(StreamSource, StreamResult).
*/
@Test
! public void testcase01() {
String outputFile = CLASS_DIR + "transformer02.out";
String goldFile = GOLDEN_DIR + "transformer02GF.out";
String xsltFile = XML_DIR + "cities.xsl";
String xmlFile = XML_DIR + "cities.xml";
try (FileInputStream fis = new FileInputStream(xmlFile);
FileOutputStream fos = new FileOutputStream(outputFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
! DocumentBuilder db = dbf.newDocumentBuilder();
! Document document = db.parse(new File(xsltFile));
! DOMSource domSource = new DOMSource(document);
Transformer transformer = TransformerFactory.newInstance().
newTransformer(domSource);
StreamSource streamSource = new StreamSource(fis);
StreamResult streamResult = new StreamResult(fos);
transformer.setOutputProperty("indent", "no");
! transformer.transform( streamSource, streamResult);
! assertTrue(compareWithGold(goldFile, outputFile));
! } catch (IOException | IllegalArgumentException
! | ParserConfigurationException | TransformerException
! | SAXException ex) {
! failUnexpected(ex);
! } finally {
! try {
! Path outputPath = Paths.get(outputFile);
! if(Files.exists(outputPath))
! Files.delete(outputPath);
! } catch (IOException ex) {
! failCleanup(ex, outputFile);
! }
}
}
}
--- 35,89 ----
import static javax.xml.transform.ptests.TransformerTestConst.CLASS_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.GOLDEN_DIR;
import static javax.xml.transform.ptests.TransformerTestConst.XML_DIR;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
+ import jaxp.library.JAXPFileBaseTest;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
import org.xml.sax.SAXException;
/**
* Here a transformer is created using DOMSource. Some specific output property
* is set on transformer. Then transform(StreamSource, StreamResult) is tested.
*/
! public class TransformerTest02 extends JAXPFileBaseTest {
/**
* Unit test for transform(StreamSource, StreamResult).
+ *
+ * @throws SAXException If any parse errors occur.
+ * @throws IOException if the file exists but is a directory rather than
+ * a regular file, does not exist but cannot be created, or cannot
+ * be opened for any other reason.
+ * @throws TransformerException If an unrecoverable error occurs during the
+ * course of the transformation.
+ * @throws ParserConfigurationException if a DocumentBuilder cannot be
+ * created which satisfies the configuration requested.
*/
@Test
! public void testcase01() throws ParserConfigurationException, SAXException,
! TransformerException, IOException {
String outputFile = CLASS_DIR + "transformer02.out";
String goldFile = GOLDEN_DIR + "transformer02GF.out";
String xsltFile = XML_DIR + "cities.xsl";
String xmlFile = XML_DIR + "cities.xml";
try (FileInputStream fis = new FileInputStream(xmlFile);
FileOutputStream fos = new FileOutputStream(outputFile)) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
! DOMSource domSource = new DOMSource(dbf.newDocumentBuilder().
! parse(new File(xsltFile)));
Transformer transformer = TransformerFactory.newInstance().
newTransformer(domSource);
StreamSource streamSource = new StreamSource(fis);
StreamResult streamResult = new StreamResult(fos);
transformer.setOutputProperty("indent", "no");
! transformer.transform(streamSource, streamResult);
}
+ assertTrue(compareWithGold(goldFile, outputFile));
}
}
< prev index next >