158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpackage junit.framework; 258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport java.io.PrintWriter; 458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport java.io.StringWriter; 558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot/** 858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * A <code>TestFailure</code> collects a failed test together with 958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * the caught exception. 1058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * @see TestResult 1158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 1258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpublic class TestFailure extends Object { 1358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot protected Test fFailedTest; 1458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot protected Throwable fThrownException; 1558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 1658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 1758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 1858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Constructs a TestFailure with the given test and exception. 1958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 2058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public TestFailure(Test failedTest, Throwable thrownException) { 2158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot fFailedTest= failedTest; 2258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot fThrownException= thrownException; 2358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 2458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 2558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Gets the failed test. 2658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 2758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public Test failedTest() { 2858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return fFailedTest; 2958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 3058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 3158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Gets the thrown exception. 3258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 3358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public Throwable thrownException() { 3458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return fThrownException; 3558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 3658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 3758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Returns a short description of the failure. 3858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 39b3823db9f1192d8c81345740b3e65bd6738ba55bBrett Chabot @Override 4058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public String toString() { 4158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot StringBuffer buffer= new StringBuffer(); 4258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot buffer.append(fFailedTest+": "+fThrownException.getMessage()); 4358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return buffer.toString(); 4458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 4558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public String trace() { 4658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot StringWriter stringWriter= new StringWriter(); 4758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot PrintWriter writer= new PrintWriter(stringWriter); 4858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot thrownException().printStackTrace(writer); 4958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot StringBuffer buffer= stringWriter.getBuffer(); 5058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return buffer.toString(); 5158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 5258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public String exceptionMessage() { 5358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return thrownException().getMessage(); 5458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 5558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public boolean isFailure() { 5658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot return thrownException() instanceof AssertionFailedError; 5758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 5858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot}