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