001: /*
002: * ========================================================================
003: *
004: * Copyright 2001-2003 The Apache Software Foundation.
005: *
006: * Licensed under the Apache License, Version 2.0 (the "License");
007: * you may not use this file except in compliance with the License.
008: * You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing, software
013: * distributed under the License is distributed on an "AS IS" BASIS,
014: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015: * See the License for the specific language governing permissions and
016: * limitations under the License.
017: *
018: * ========================================================================
019: */
020: package org.apache.cactus.internal.client;
021:
022: import java.io.PrintStream;
023: import java.io.PrintWriter;
024:
025: import junit.framework.AssertionFailedError;
026:
027: /**
028: * Same as <code>ServletExceptionWrapper</code> except that this exception class
029: * extends JUnit <code>AssertionFailedError</code> so that JUnit will
030: * print a different message in it's runner console.
031: *
032: * @version $Id: AssertionFailedErrorWrapper.java 238991 2004-05-22 11:34:50Z vmassol $
033: */
034: public class AssertionFailedErrorWrapper extends AssertionFailedError {
035: /**
036: * The stack trace that was sent back from the servlet redirector as a
037: * string.
038: */
039: private String stackTrace;
040:
041: /**
042: * The class name of the exception that was raised on the server side.
043: */
044: private String className;
045:
046: /**
047: * Standard throwable constructor.
048: *
049: * @param theMessage the exception message
050: */
051: public AssertionFailedErrorWrapper(String theMessage) {
052: super (theMessage);
053: }
054:
055: /**
056: * Standard throwable constructor.
057: */
058: public AssertionFailedErrorWrapper() {
059: super ();
060: }
061:
062: /**
063: * The constructor to use to simulate a real exception.
064: *
065: * @param theMessage the server exception message
066: * @param theClassName the server exception class name
067: * @param theStackTrace the server exception stack trace
068: */
069: public AssertionFailedErrorWrapper(String theMessage,
070: String theClassName, String theStackTrace) {
071: super (theMessage);
072: this .className = theClassName;
073: this .stackTrace = theStackTrace;
074: }
075:
076: /**
077: * Simulates a printing of a stack trace by printing the string stack trace
078: *
079: * @param thePs the stream to which to output the stack trace
080: */
081: public void printStackTrace(PrintStream thePs) {
082: if (this .stackTrace == null) {
083: thePs.print(getMessage());
084: } else {
085: thePs.print(this .stackTrace);
086: }
087: }
088:
089: /**
090: * Simulates a printing of a stack trace by printing the string stack trace
091: *
092: * @param thePw the writer to which to output the stack trace
093: */
094: public void printStackTrace(PrintWriter thePw) {
095: if (this .stackTrace == null) {
096: thePw.print(getMessage());
097: } else {
098: thePw.print(this .stackTrace);
099: }
100: }
101:
102: /**
103: * @return the wrapped class name
104: */
105: public String getWrappedClassName() {
106: return this.className;
107: }
108: }
|