summaryrefslogtreecommitdiff
path: root/test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java')
-rw-r--r--test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java180
1 files changed, 180 insertions, 0 deletions
diff --git a/test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java b/test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java
new file mode 100644
index 0000000..1476ef0
--- /dev/null
+++ b/test/java/src/org/apache/qetest/trax/ErrorListenerAPITest.java
@@ -0,0 +1,180 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * $Id$
+ */
+
+/*
+ *
+ * ErrorListenerAPITest.java
+ *
+ */
+package org.apache.qetest.trax;
+
+import java.util.Properties;
+
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.TransformerException;
+
+import org.apache.qetest.FileBasedTest;
+
+//-------------------------------------------------------------------------
+
+/**
+ * API Coverage test for ErrorListener; defaults to Xalan impl.
+ * Only very basic API coverage.
+ * @author shane_curcuru@lotus.com
+ * @version $Id$
+ */
+public class ErrorListenerAPITest extends FileBasedTest
+{
+ /** FQCN for Xalan-J 2.x impl. */
+ public static final String XALAN_ERRORLISTENER_IMPL = "org.apache.xml.utils.DefaultErrorHandler";
+
+ /** FQCN for the Logging* impl that the tests provide. */
+ public static final String QETEST_ERRORLISTENER_IMPL = "org.apache.qetest.trax.LoggingErrorHandler";
+
+ /** Name of ErrorListener implementation we're going to test. */
+ public String errorListenerClassname = XALAN_ERRORLISTENER_IMPL;
+
+ /** Just initialize test name, comment, numTestCases. */
+ public ErrorListenerAPITest()
+ {
+ numTestCases = 1; // REPLACE_num
+ testName = "ErrorListenerAPITest";
+ testComment = "API Coverage test for ErrorListener; defaults to Xalan impl";
+ }
+
+
+ /**
+ * Initialize this test - Set names of xml/xsl test files,
+ * //@todo read in name of alternate ErrorListener class!
+ *
+ * @param p Properties to initialize from (if needed)
+ * @return false if we should abort the test; true otherwise
+ */
+ public boolean doTestFileInit(Properties p)
+ {
+ reporter.logInfoMsg("//@todo allow user to change name of ErrorListener implementation used");
+ return true;
+ }
+
+
+ /**
+ * API Coverage of ErrorListener class, using Xalan-J 2.x impl.
+ *
+ * @return false if we should abort the test; true otherwise
+ */
+ public boolean testCase1()
+ {
+ reporter.testCaseInit("API Coverage of ErrorListener class, using Xalan-J 2.x impl");
+ Class elClass = null;
+ ErrorListener errorListener = null;
+ try
+ {
+ elClass = Class.forName(errorListenerClassname);
+ errorListener = (ErrorListener)elClass.newInstance();
+ }
+ catch (Exception e)
+ {
+ reporter.checkErr("Loading errorListener implementation " + errorListenerClassname
+ + " threw: " + e.toString());
+ reporter.testCaseClose();
+ return true;
+ }
+
+ Exception ex = new Exception("Exception-message-here");
+ TransformerException tex = new TransformerException("TransformerException-message-here", ex);
+
+ try
+ {
+ errorListener.warning(tex);
+ reporter.checkPass("warning did not throw any exception");
+ reporter.logTraceMsg("//@todo also validate System.err stream!");
+ }
+ catch (TransformerException te)
+ {
+ reporter.checkFail("warning threw TransformerException, threw: " + te.toString());
+ }
+ catch (Throwable t)
+ {
+ reporter.checkFail("warning threw non-TransformerException, threw: " + t.toString());
+ }
+
+ try
+ {
+ // Default error impl in Xalan throws exception
+ errorListener.error(tex);
+ reporter.checkFail("error did not throw any exception");
+ reporter.logTraceMsg("//@todo also validate System.err stream!");
+ }
+ catch (TransformerException te)
+ {
+ reporter.checkPass("error expectedly threw TransformerException, threw: " + te.toString());
+ reporter.check((te.toString().indexOf("TransformerException-message-here") > -1),
+ true, "error's exception includes proper text");
+ }
+ catch (Throwable t)
+ {
+ reporter.checkFail("error threw non-TransformerException, threw: " + t.toString());
+ }
+
+ try
+ {
+ // Default fatalError impl in Xalan throws exception
+ errorListener.error(tex);
+ reporter.checkFail("fatalError did not throw any exception");
+ reporter.logTraceMsg("//@todo also validate System.err stream!");
+ }
+ catch (TransformerException te)
+ {
+ reporter.checkPass("fatalError expectedly threw TransformerException, threw: " + te.toString());
+ reporter.check((te.toString().indexOf("TransformerException-message-here") > -1),
+ true, "fatalError's exception includes proper text");
+ }
+ catch (Throwable t)
+ {
+ reporter.checkFail("fatalError threw non-TransformerException, threw: " + t.toString());
+ }
+ reporter.testCaseClose();
+ return true;
+ }
+
+
+ /**
+ * Convenience method to print out usage information - update if needed.
+ * @return String denoting usage of this test class
+ */
+ public String usage()
+ {
+ return ("Common [optional] options supported by ErrorListenerAPITest:\n"
+ + "(Note: assumes inputDir=.\\tests\\api)\n"
+ + super.usage()); // Grab our parent classes usage as well
+ }
+
+
+ /**
+ * Main method to run test from the command line - can be left alone.
+ * @param args command line argument array
+ */
+ public static void main(String[] args)
+ {
+ ErrorListenerAPITest app = new ErrorListenerAPITest();
+ app.doMain(args);
+ }
+}