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