1package junit.framework;
2
3import java.io.PrintWriter;
4import java.io.StringWriter;
5
6
7/**
8 * A <code>TestFailure</code> collects a failed test together with
9 * the caught exception.
10 * @see TestResult
11 */
12public class TestFailure extends Object {
13	protected Test fFailedTest;
14	protected Throwable fThrownException;
15
16
17	/**
18	 * Constructs a TestFailure with the given test and exception.
19	 */
20	public TestFailure(Test failedTest, Throwable thrownException) {
21		fFailedTest= failedTest;
22		fThrownException= thrownException;
23	}
24	/**
25	 * Gets the failed test.
26	 */
27	public Test failedTest() {
28	    return fFailedTest;
29	}
30	/**
31	 * Gets the thrown exception.
32	 */
33	public Throwable thrownException() {
34	    return fThrownException;
35	}
36	/**
37	 * Returns a short description of the failure.
38	 */
39	public String toString() {
40	    StringBuffer buffer= new StringBuffer();
41	    buffer.append(fFailedTest+": "+fThrownException.getMessage());
42	    return buffer.toString();
43	}
44	public String trace() {
45		StringWriter stringWriter= new StringWriter();
46		PrintWriter writer= new PrintWriter(stringWriter);
47		thrownException().printStackTrace(writer);
48		StringBuffer buffer= stringWriter.getBuffer();
49		return buffer.toString();
50	}
51	public String exceptionMessage() {
52		return thrownException().getMessage();
53	}
54	public boolean isFailure() {
55		return thrownException() instanceof AssertionFailedError;
56	}
57}
58