in java/src/org/apache/qetest/trax/TransformerAPITest.java [932:1029]
public boolean testCase5()
{
reporter.testCaseInit(
"TRAX Transformer: cover multiple calls to transform()");
TransformerFactory factory = null;
Templates templates = null;
try
{
factory = TransformerFactory.newInstance();
factory.setErrorListener(new DefaultErrorHandler());
}
catch (Throwable t)
{
reporter.logThrowable(reporter.STATUSMSG, t, "Can't continue testcase, factory.newInstance threw:");
reporter.checkErr("Can't continue testcase, factory.newInstance threw: " + t.toString());
return true;
}
try
{
Transformer transformer = factory.newTransformer(new StreamSource(simpleTest.inputName));
transformer.setErrorListener(new DefaultErrorHandler());
// Re-use the transformer multiple times on identity
transformer.transform(new StreamSource(simpleTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(simpleTest.goldName),
"transform(#1) identity into: " + outNames.currentName());
transformer.transform(new StreamSource(simpleTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(simpleTest.goldName),
"transform(#2) identity into: " + outNames.currentName());
transformer.transform(new StreamSource(simpleTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(simpleTest.goldName),
"transform(#3) identity into: " + outNames.currentName());
transformer = factory.newTransformer(new StreamSource(multiTest.inputName));
transformer.setErrorListener(new DefaultErrorHandler());
// Re-use the transformer multiple times on file with variable
transformer.transform(new StreamSource(multiTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(multiTest.goldName),
"transform(#1-a) var test into: " + outNames.currentName());
transformer.transform(new StreamSource(multiTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(multiTest.goldName),
"transform(#2-a) var test into: " + outNames.currentName());
// Reset the transformer to its original state
transformer.reset();
transformer.transform(new StreamSource(multiTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(multiTest.goldName),
"transform(#3-a) var test into: " + outNames.currentName());
// Now re-use with different xml doc
transformer.transform(new StreamSource(multi2Test.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(multi2Test.goldName),
"transform(#4-b) var test into: " + outNames.currentName());
// Reset the transformer to its original state
transformer.reset();
// Now re-use with original xml doc
transformer.transform(new StreamSource(multiTest.xmlName),
new StreamResult(outNames.nextName()));
fileChecker.check(reporter,
new File(outNames.currentName()),
new File(multiTest.goldName),
"transform(#5-a) var test into: " + outNames.currentName());
}
catch (Throwable t)
{
reporter.logThrowable(reporter.WARNINGMSG, t, "Multiple transform() calls threw");
reporter.checkErr("Multiple transform() calls threw: " + t.toString());
}
reporter.testCaseClose();
return true;
}