package junit.framework;
/**
* Thrown when an assert equals for Strings failed.
*
* Inspired by a patch from Alex Chaffee mailto:alex@purpletech.com
*/
public class
ComparisonFailure extends
AssertionFailedError {
private static final int
MAX_CONTEXT_LENGTH = 20;
private static final long
serialVersionUID = 1L;
private
String fExpected;
private
String fActual;
/**
* Constructs a comparison failure.
*
* @param message the identifying message or null
* @param expected the expected string value
* @param actual the actual string value
*/
public
ComparisonFailure(
String message,
String expected,
String actual) {
super(
message);
fExpected =
expected;
fActual =
actual;
}
/**
* Returns "..." in place of common prefix and "..." in
* place of common suffix between expected and actual.
*
* @see Throwable#getMessage()
*/
@
Override
public
String getMessage() {
return new
ComparisonCompactor(
MAX_CONTEXT_LENGTH,
fExpected,
fActual).
compact(super.getMessage());
}
/**
* Gets the actual string value
*
* @return the actual string value
*/
public
String getActual() {
return
fActual;
}
/**
* Gets the expected string value
*
* @return the expected string value
*/
public
String getExpected() {
return
fExpected;
}
}