package unitTest;
import unitTest.AssertionFailedError;
import unitTest.Test;
import unitTest.TestResult;
//import java.io.PrintWriter;
//import java.io.StringWriter;
/**
* A <code>TestFailure</code> collects a failed test together with the
* caught exception.
*
* @see TestResult
*/
public class TestFailure
{
protected Test fFailedTest;
protected Throwable fThrownException;
/**
* Constructs a TestFailure with the given test and exception.
*/
public TestFailure (Test failedTest, Throwable thrownException)
{
fFailedTest = failedTest;
fThrownException = thrownException;
}
/**
* Gets the failed test.
*/
public Test failedTest ()
{
return fFailedTest;
}
/**
* Gets the thrown exception.
*/
public Throwable thrownException ()
{
return fThrownException;
}
/**
* Returns a short description of the failure.
*/
public String toString ()
{
StringBuffer buffer = new StringBuffer();
buffer.append(fFailedTest + ", " + fThrownException.getMessage() );
return buffer.toString();
}
/*public String trace ()
{
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
thrownException().printStackTrace(writer);
StringBuffer buffer = stringWriter.getBuffer();
return buffer.toString();
}*/
public String exceptionMessage ()
{
return thrownException().getMessage();
}
public boolean isFailure ()
{
return thrownException() instanceof AssertionFailedError;
}
}