in java/src/org/apache/qetest/trax/TransformerAPITest.java [195:400]
public boolean testCase1()
{
reporter.testCaseInit(
"TRAX Transformer: cover basic get/setParameter(s) APIs");
TransformerFactory factory = null;
Templates templates = null;
Transformer transformer = null;
Transformer identityTransformer = null;
try
{
factory = TransformerFactory.newInstance();
factory.setErrorListener(new DefaultErrorHandler());
identityTransformer = factory.newTransformer();
identityTransformer.setErrorListener(new DefaultErrorHandler());
templates = factory.newTemplates(new StreamSource(paramTest.inputName));
}
catch (Exception e)
{
reporter.checkFail("Problem creating Templates; cannot continue testcase");
reporter.logThrowable(reporter.ERRORMSG, e,
"Problem creating Templates; cannot continue testcase");
return true;
}
// Note: large number of try...catch blocks so that early
// exceptions won't blow out the whole testCase
try
{
// See what the default 'identity' transform has by default
Object tmp = identityTransformer.getParameter("This-param-does-not-exist");
reporter.checkObject(tmp, null, "This-param-does-not-exist is null by default identityTransformer");
// Can you set properties on this transformer?
identityTransformer.setParameter("foo", "bar");
tmp = identityTransformer.getParameter("foo");
if (tmp == null)
{
reporter.checkFail("identityTransformer set/getParameter is:" + tmp);
}
else
{
reporter.checkString((String)tmp, "bar", "identityTransformer set/getParameter value: " + tmp);
reporter.check((tmp instanceof String), true, "identityTransformer set/getParameter datatype");
}
}
catch (Exception e)
{
reporter.logThrowable(reporter.ERRORMSG, e, "Problem(1) with identity parameters");
reporter.checkFail("Problem(1) with identity parameters");
}
try
{
transformer = templates.newTransformer(); // may throw TransformerConfigurationException
transformer.setErrorListener(new DefaultErrorHandler());
// Default Transformer should not have any parameters..
Object tmp = transformer.getParameter("This-param-does-not-exist");
reporter.checkObject(tmp, null, "This-param-does-not-exist is null by default");
// .. including params in the stylesheet
tmp = transformer.getParameter(PARAM1S);
if (tmp == null)
{ // @todo should use checkObject instead of this if... construct
reporter.checkPass(PARAM1S + " is null by default");
}
else
{
reporter.checkFail(PARAM1S + " is " + tmp + " by default");
}
// Verify simple set/get of a single parameter - String
transformer.setParameter(PARAM1S, "new value1s");
reporter.logTraceMsg("Just reset " + PARAM1S + " to new value1s");
tmp = transformer.getParameter(PARAM1S); // SPR SCUU4QWTVZ - returns an XString - fixed
if (tmp == null)
{
reporter.checkFail(PARAM1S + " is still set to null!");
}
else
{ // Validate SPR SCUU4QWTVZ - should return the same type you set
if (tmp instanceof String)
{
reporter.checkString((String)tmp, "new value1s", PARAM1S + " is now set to ?" + tmp + "?");
}
else
{
reporter.checkFail(PARAM1S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
}
}
}
catch (Exception e)
{
reporter.logThrowable(reporter.ERRORMSG, e, "Problem(2) set/getParameter testing");
reporter.checkFail("Problem(2) set/getParameter testing");
}
try
{
transformer = templates.newTransformer();
transformer.setErrorListener(new DefaultErrorHandler());
// Verify simple set/get of a single parameter - Integer
transformer.setParameter(PARAM3S, new Integer(1234));
reporter.logTraceMsg("Just set " + PARAM3S + " to Integer(1234)");
Object tmp = transformer.getParameter(PARAM3S); // SPR SCUU4QWTVZ - returns an XObject - fixed
if (tmp == null)
{
reporter.checkFail(PARAM3S + " is still set to null!");
}
else
{ // Validate SPR SCUU4QWTVZ - should return the same type you set
if (tmp instanceof Integer)
{
reporter.checkObject(tmp, new Integer(1234), PARAM3S + " is now set to ?" + tmp + "?");
}
else
{
reporter.checkFail(PARAM3S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
}
}
// Verify simple re-set/get of a single parameter - new Integer
transformer.setParameter(PARAM3S, new Integer(99)); // SPR SCUU4R3JGY - can't re-set
reporter.logTraceMsg("Just reset " + PARAM3S + " to new Integer(99)");
tmp = null;
tmp = transformer.getParameter(PARAM3S);
if (tmp == null)
{
reporter.checkFail(PARAM3S + " is still set to null!");
}
else
{ // Validate SPR SCUU4QWTVZ - should return the same type you set
if (tmp instanceof Integer)
{
reporter.checkObject(tmp, new Integer(99), PARAM3S + " is now set to ?" + tmp + "?");
}
else
{
reporter.checkFail(PARAM3S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
}
}
// Verify simple re-set/get of a single parameter - now a new String
transformer.setParameter(PARAM3S, "new value3s");
reporter.logTraceMsg("Just reset " + PARAM3S + " to new value3s");
tmp = null;
tmp = transformer.getParameter(PARAM3S);
if (tmp == null)
{
reporter.checkFail(PARAM3S + " is still set to null!");
}
else
{ // Validate SPR SCUU4QWTVZ - should return the same type you set
if (tmp instanceof String)
{
reporter.checkString((String)tmp, "new value3s", PARAM3S + " is now set to ?" + tmp + "?");
}
else
{
reporter.checkFail(PARAM3S + " is now ?" + tmp + "?, isa " + tmp.getClass().getName());
}
}
}
catch (Exception e)
{
reporter.logThrowable(reporter.ERRORMSG, e, "Problem(3) set/getParameters testing");
reporter.checkFail("Problem(3) set/getParameters testing");
}
try
{
transformer = templates.newTransformer();
transformer.setErrorListener(new DefaultErrorHandler());
transformer.setParameter(PARAM1S, "'test-param-1s'"); // note single quotes
transformer.setParameter(PARAM1N, new Integer(1234));
// Verify basic params actually affect transformation
// Use the transformer we set the params onto above!
FileOutputStream fos = new FileOutputStream(outNames.nextName());
if (doTransform(transformer,
new StreamSource(paramTest.xmlName),
new StreamResult(fos)))
{
fos.close(); // must close ostreams we own
// @todo should update goldFile!
if (Logger.PASS_RESULT
!= fileChecker.check(reporter,
new File(outNames.currentName()),
new File(paramTest.goldName),
"transform with param1s,param1n into: " + outNames.currentName())
)
reporter.logInfoMsg("transform with param1s,param1n failure reason:" + fileChecker.getExtendedInfo());
}
String gotStr = (String)transformer.getParameter(PARAM1S);
reporter.check(gotStr, "'test-param-1s'",
PARAM1S + " is still set after transform to ?" + gotStr + "?");
Integer gotInt = (Integer)transformer.getParameter(PARAM1N);
reporter.checkInt(gotInt.intValue(), 1234,
PARAM1N + " is still set after transform to ?" + gotInt + "?");
}
catch (Exception e)
{
reporter.logThrowable(reporter.ERRORMSG, e, "Problem(4) with parameter transform");
reporter.checkFail("Problem(4) with parameter transform");
}
reporter.testCaseClose();
return true;
}